2016-09-12 5 views
2

事をしていない、私は、このコマンドを持っている:「CD/DC:」バッチファイルの終わりに

CD /D C:\ 

は、私はCにディレクトリを変更したい:\が、ラインのdoesnものをしないでください。私は手動で入力した場合、この時点で

D:>CD /D C:\ 
D:> 

:これは、画面上にあるものである

"CD/D C:\"、私はCにディレクトリを変更することができます:。

動作させるにはどうしたらよいですか?

+3

あなたのスクリプトでsetlocalを使用している可能性が高いためです。 – Squashman

+1

問題は、バッチファイルに_its own_カレントディレクトリがあることです。内部で 'CD'を実行すると、外部のカレントディレクトリには影響しません。 1つのバッチファイルが別のバッチファイルを呼び出すと、すべてが独自のバッチファイルを持っています。 – MSalters

+2

@MSalters 'setlocal'が使われている場合のみです。 * nixスクリプトとは異なり、バッチスクリプトはデフォルトで独自の環境を持っていません。 – TripeHound

答えて

3

バッチスクリプトにはおそらくsetlocalがあります。 、これを行う簡単な方法があります

... your batchfile 
endlocal 
cd /d c:\ 
+0

完全性のために、(ローカル)環境変数に保持されているディレクトリに変更したい場合は、 'endlocal && cd/d%TARGETDIR%'を実行できます([この質問とその回答](http:// stackoverflowを参照)。 com/q/3262287/2096401))。 – TripeHound

+0

@TripeHound:単一の '&' [すべき](http://ss64.com/nt/syntax-redirection.html) – Stephan

+0

真。おそらく単一の '&'が並行して実行されるときの* nix日からの習慣の力。 – TripeHound

0

をあなたがDである場合:以下の作業をする必要があります/ドライブ、そしてあなたがCに切り替えたい:/ドライブ、あなただけのドライブ文字を入力することができますたとえば、C:/ドライブにあるコロンが続いて、D:/ドライブに切り替えるには、D:だけを入力して、現在のドライブを切り替えます。

+1

これは 'cd/D C:\'がまったく動かないという問題があったので、あなたのヒントも失敗するので、この質問に対する答えではありません。 Btw。 'C:'は 'cd/D C:\'と異なり、2番目のドライブはドライブを切り替える**と**はパスを設定する – jeb

関連する問題