2

PowerShell でしか実行できないフレームワークがありますが、バッチ ファイル コマンドを実行する必要があります。次のような PowerShell スクリプトを実行しようとしています。

cmd /c blah

私は次のようなことをしblahたいからです:

set myPath = c:\theDir && if not exist %myPath% mkdir %myPath%

setコマンドは2行目まで有効にならないように見えるため、これを初めて実行するときは機能しません。何か案は?

4

4 に答える 4

2

これは、行が実行されたときではなく、行が解析されcmdたときに変数を評価するためです。後者の動作を得るには、遅延展開を使用する必要があります。

cmd /c /v:on "set MyPath=C:\theDir&& if not exist "!myPath!" mkdir "!myPath!"

=また、 a の前後にスペースを入れてはならないことに注意してくださいset。そうしないと、最後にスペースを含む変数名を作成することになります (つまり、あなたのアプローチは決して機能しませんでした)。

于 2012-06-07T09:41:39.713 に答える
0
for %d in (some\path and\maybe\another\one) do @if not exist "%d" md "%d"
于 2012-06-06T20:16:16.640 に答える