[解決済み] コマンドライン.cmd/.batスクリプト、実行中のスクリプトのディレクトリを取得する方法
質問
実行されたスクリプトのディレクトリを取得し、それを .cmd ファイル内で使用するにはどうしたらよいでしょうか。
どのように解決するのですか?
Raymond Chenはいくつかのアイデアを持っています。
https://devblogs.microsoft.com/oldnewthing/20050128-00/?p=36573
MSDN アーカイブはやや信頼性に欠ける傾向があるため、ここに全文を引用します。
<ブロッククオート
簡単な方法は
%CD%
擬似変数です。これは
現在の作業ディレクトリに展開されます。
set OLDDIR=%CD%
.. do stuff ..
chdir /d %OLDDIR% &rem restore current directory
(もちろん、ディレクトリの保存/復元は、より簡単に行うことができます。
で行うことができます。
pushd
/
popd
といった具合に、「このままではダメだ」ということです(笑)。
は
%CD%
のトリックは、コマンドラインからでも便利です。例えば、私は
よく、あるディレクトリに操作したいファイルがあるのですが
しかし...ああ、その操作を行うには他のディレクトリにchdirする必要があるんだ。
その操作を実行するために、他のディレクトリに chdir する必要があります。
set _=%CD%\curfile.txt
cd ... some other directory ...
somecommand args %_% args
(私は
%_%
をスクラッチ環境変数として使うのが好きです)。
タイプ
SET /?
と入力すると、コマンドプロセッサが提供する他の擬似変数が表示されます。
プロセッサが提供する他の擬似変数を見ることができます。
また、記事中のコメントは、例えばこのようなものをスキャンする価値があります (古い記事からコメントが消えているので、WayBack Machine 経由で)。
http://blogs.msdn.com/oldnewthing/archive/2005/01/28/362565.aspx#362741
これは、%~dp0 の使用をカバーします。
バッチファイルがどこにあるか知りたい場合。
%~dp0
%0
はバッチファイルの名前です。~dp
は、指定された引数のドライブとパスを与える。 指定された引数のドライブとパスを与えます。
関連
-
[解決済み] %~dp0とはどういう意味ですか、またどのように機能しますか?
-
[解決済み] 非常に基本的なバッチ式自己複製コード:どのくらい危険か?
-
[解決済み] WindowsのCMDで1行に2つのコマンドを実行するにはどうしたらいいですか?
-
[解決済み] Windowsのバッチファイルから長いコマンドを複数行に分割する
-
[解決済み] 1つの.BATファイル内で複数の.BATファイルを実行する方法
-
[解決済み] Windowsのコマンドラインで、現在の日付/時刻をファイル/フォルダー名で使用するために適切な形式で取得するにはどうすればよいですか?
-
[解決済み】バッチ/cmdで "コメントアウト"(コメント追加)するには?
-
[解決済み】Windowsのバッチファイル:.batと.cmdの違いは?
-
[解決済み】バッチスクリプトでディレクトリ内の各ファイルに対して何かを行う方法
-
[解決済み】BATファイル実行後、CMDを開いたままにする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .BATファイルを完了後に自己削除する方法を教えてください。
-
[解決済み] バッチファイル内でif - else構造を使用するには?
-
[解決済み] バッチファイルからcmdコマンドを実行するにはどうすればよいですか?
-
[解決済み] Windowsでバッチスクリプトのパスを取得する方法を教えてください。
-
[解決済み】MSバッチファイルを使用して、プログラムの出力を変数に割り当てる
-
[解決済み】DOSバッチでの論理演算子("and"、"or")について
-
[解決済み] コマンドライン出力の抑制
-
[解決済み] 変数からパスとファイル名を一括で取り出す
-
[解決済み] 起動時にバッチファイルを実行する
-
[解決済み] バッチファイル入力から末尾のスラッシュを削除する