web-dev-qa-db-ja.com

バッチファイルの現在のディレクトリは何ですか?

プログラムを自動化するためにいくつかのバッチファイルを作成したいです。

私の質問は、バッチファイルを作成するときです。現在のディレクトリは何ですか?ファイルが配置されているディレクトリですか、それともコマンドプロンプトに表示されるのと同じディレクトリですか、それとも別のディレクトリですか?

413
Aaron de Windt

バッチファイル内から:

  • %cd%現在の作業ディレクトリを参照します (変数)
  • %~dp0は、バッチファイルのディレクトリへのフルパスを参照します(静的)。
  • %~dpnx0は、バッチディレクトリへのフルパスとファイル名を表します(静的)。
864
JRL

通常 は、バッチファイルが開始されるディレクトリですが、ショートカットからバッチファイルを開始する場合は、別の開始ディレクトリを指定できます。また、cmdを使用していて、現在のディレクトリがc:\dir3の場合でも、c:\dir1\dir2\batch.batを使用してバッチファイルを起動できます。その場合、現在のディレクトリはc:\dir3になります。

23
GolezTrol

バッチファイルでは、%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"
9
J. Bond

バッチファイルを起動したディレクトリです。例えば。あなたのバッチがc:\dir1\dir2にあり、あなたがcd c:\dir3を実行し、そしてバッチを実行するならば、現在のディレクトリはc:\dir3になります。

4
icyrock.com

バッチファイルを実行するコマンドを実行したディレクトリです。

上記の回答で述べたように、スクリプトに下記のコマンドを追加して確認できます。

> set current_dir=%cd%
> echo %current_dir%  
4
anuj0901

現在のディレクトリにあるファイルを開いていたとします。コマンドは次のようになります。

 start %cd%\filename.filetype

あなたの質問に答えてください。

3