2017-05-18 10 views
1

問題が発生しました。そこにはバッチファイルがあり、その中にと記号があるディレクトリに配置されています。cmd/cとファイルパスの&記号

バッチファイルでcmd/cを実行しようとすると、パスが二重引用符で囲まれていても、と記号がcmdプログラムを壊します。

C:\>cmd /c "C:\This & That\batch.bat" 
'C:\This' is not recognized as an internal or external command, 
operable program or batch file. 
The system cannot find the path specified. 

私は何をすべきかわかりません。^&を使用して&をエスケープしようとしましたが、それは二重引用符ですべて準備されているため動作しません。

&シンボルを持たないディレクトリから同じコマンドラインを実行するとうまくいきます。

C:\>cmd /c "C:\This and That\batch.bat" 

C:\>echo "Hi There" 
"Hi There" 

ありがとうございました。

答えて

1

これが最良の方法です。

&^でエスケープし、二重引用符を二重引用符で囲む必要があります。

cmd /c ""C:\This ^& That\batch.bat"" 

か、場所の変数を設定し、互いの後setcmd /cを実行するために&&を使用することができます。

set "location=C:\This ^& That" && cmd /c ""%location%\batch.bat"" 
+0

ありがとうございました。私はこれを解決策としています。私は作業ディレクトリを最初に設定し、バッチファイルを名前だけで実行することで(完全なパスを指定せずに)、この問題を回避しました。 – mac671

+0

クール、フラグのおかげで。 –