プログラムを自動化するためにいくつかのバッチファイルを作成したいです。
私の質問は、バッチファイルを作成するときです。現在のディレクトリは何ですか?ファイルが配置されているディレクトリですか、それともコマンドプロンプトに表示されるのと同じディレクトリですか、それとも別のディレクトリですか?
バッチファイル内から:
%cd%
は 現在の作業ディレクトリを参照します (変数)%~dp0
は、バッチファイルのディレクトリへのフルパスを参照します(静的)。%~dpnx0
は、バッチディレクトリへのフルパスとファイル名を表します(静的)。 通常 は、バッチファイルが開始されるディレクトリですが、ショートカットからバッチファイルを開始する場合は、別の開始ディレクトリを指定できます。また、cmdを使用していて、現在のディレクトリがc:\dir3
の場合でも、c:\dir1\dir2\batch.bat
を使用してバッチファイルを起動できます。その場合、現在のディレクトリはc:\dir3
になります。
バッチファイルでは、%cd%が現在のディレクトリで最も一般的に使用されるコマンドですが、独自の変数を設定することもできます。
set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)
だからMyprog.exeを開きたいとします。同じフォルダにある場合は、次のコマンドを使用します。
start %mypath%\Myprog.exe
現在のフォルダからMyprogが開きます。
もう1つの選択肢は、AutomateProgramsというディレクトリをC:に作成することです。次に、ファイルをそのフォルダに転送してから、次のコマンドを使用してそれらを開くことができます。
start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"
バッチファイルを起動したディレクトリです。例えば。あなたのバッチがc:\dir1\dir2
にあり、あなたがcd c:\dir3
を実行し、そしてバッチを実行するならば、現在のディレクトリはc:\dir3
になります。
バッチファイルを実行するコマンドを実行したディレクトリです。
上記の回答で述べたように、スクリプトに下記のコマンドを追加して確認できます。
> set current_dir=%cd%
> echo %current_dir%
現在のディレクトリにあるファイルを開いていたとします。コマンドは次のようになります。
start %cd%\filename.filetype
あなたの質問に答えてください。