はじめに
Botを作り、実行機など他のPCに移す時にダウンロードフォルダ等を絶対パスで指定していると、
Windowsにログインするユーザーによりフォルダのパスが変わるため、動作しない。といったことがあります。
そのために可変するフォルダではなく、Cドライブ直下などに専用のフォルダを作成したりしますが、
その場合はアクセス権の設定等がややこしかったりします。
今回は可変値であるダウンロードフォルダやドキュメントフォルダ等のパスを出来るだけ簡単な方法で取得する方法を紹介します。
手順
- 「アプリケーション: プログラム/ファイルを開く」でコマンドプロンプトを呼び出し、%userprofile%の環境変数の値をクリップボードに格納する
- 得られた文字列から「トリム」アクションを使ってスペースと改行を削除する
- クリップボード変数を使って必要なフォルダのパスを作成する。(例:ダウンロードフォルダ等)
手順詳細
「アプリケーション: プログラム/ファイルを開く」アクションを置く
「パラメーター」の箇所で使用するコマンドはこちら
「アプリケーション: プログラム/ファイルを開く」からコマンドプロンプトのコマンドを実行する場合、「/c」をパラメーターの先頭につけるのがポイントです。
/c echo %userprofile% | clip
得られた文字列から「トリム」アクションを使ってスペースと改行を削除する
メッセージボックスなどで他の文字列と組み合わせて表示してみるとわかるのですが、
取得した文字列はそのままですと末尾にスペースと改行を含みますので、これを「トリム」アクションで取り除きます。
クリップボード変数を使って必要なフォルダのパスを作成する
以下のように、例えば後ろに「\Downloads」をつけるとダウンロードフォルダのフォルダパスになります。
まとめ
- ダウンロードフォルダ等は実はファイルパスがユーザーごとに可変で厄介
- 色々な方法があるけれど、コマンドプロンプトを使う方法が一番シンプルかも?
- 今回のような方法でフォルダ指定すると他のPCに移した際にも問題になりにくい