バッチファイルを使用して現在の作業ディレクトリを変更する方法


110

バッチファイルを作成するときに助けが必要です。次のように、変数のルートにパスが保存されています。

set root=D:\Work\Root

次に、作業ディレクトリを次のようにこのルートに変更します。

cd %root%

このバッチファイルをDドライブのどこからでも実行すると、これは正常に行われます。しかし、他のドライブから同じバッチファイルを実行すると、cd%root%が機能しません。

ルート変数からドライブ文字を取得する方法はありますか?次に、最初に現在のディレクトリをこのドライブに変更すると、cd%root%が機能します。

回答:


160

/Dドライブも変更するように指定します。

CD /D %root%

1
他の答えは\d(小文字)どちらかに違いがあると言いますか?このオプションは大文字と小文字を区別しませんか?
josch

3
@josch:我々はCMDの内部コマンドについて話している場合は、[はい、その後のようなパラメータ切り替え/D上記は、大文字と小文字を区別しない(/D= /d)、ちょうどコマンドそのもののように(CD= cd)。私はそれが(のような、すべての外部のWindowsコマンドラインユーティリティについても同様であると考えているFINDSTRSORTなど)サードパーティ製ツール、一方で、大文字と小文字を区別したパラメータを使用することができます。
Andriy M

自身の答えに値するが、あなたのことができないset "root=/d D:\Work\Root"し、cd %root%あるいはset "root=cd /d D:\Work\Root"、ちょうど%root%
ステファン

40

cd /d %root%ドライバー文字の切り替えやディレクトリの変更に使用してください。

または、pushd %root%ディレクトリを変更するときにドライブ文字を切り替えたり、以前のディレクトリをスタックに保存したりして、元にpopd戻すことができます。

pushd使用すると、ディレクトリをネットワーク共有に変更することもできます。実際にネットワークドライブをマップし、popdそのディレクトリに対してを実行するとマップが解除されます。


29

これを試して

chdir /d D:\Work\Root

応援をお楽しみください;)


6
応援?この文脈でそれはどういう意味ですか?
Mathias Lykkegaard Lorenzen

ディレクトリの前後に、 "は次のように置く必要があります; chdir / d" D:\ Work \ Root "
Ad Infinitum

12

より簡単な構文は

%root%をプッシュ


3
うわー、すべてのソリューションの中で最も低いランキングは、実際に魅力のように機能したものです!ありがとう!
Arto Kalishian
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.