2017-08-28 8 views
0

私のバッチファイルは、次のコードを実行されている指定:バッチ実行は、ファイルを見つけることができないシステムは

[...] 
copy nul %BaseDir%\bin\MyIniFile.ini 

echo [OEMINFO]        >> %BaseDir%\bin\MyIniFile.ini 
echo OEMTextColor=       >> %BaseDir%\bin\MyIniFile.ini 
echo OEMBackGroundColor=      >> %BaseDir%\bin\MyIniFile.ini 
echo OEMNoStartupLogos=T      >> %BaseDir%\bin\MyIniFile.ini 
echo OEMInfoGreetings=      >> %BaseDir%\bin\MyIniFile.ini 
echo OEMIcon=<BD>\config\Default\cad.ico  >> %BaseDir%\bin\MyIniFile.ini 
[...] 

は、私は常にエラー「指定されたファイルが見つかりません」を取得しますが、iniファイルを正しく使用して作成されました最後のもの(OEMIcon = \ config \ BormGroupERP \ Default \ cadt.ico)以外のすべてのエントリ。

は、まず私が働いていた

echo "OEMIcon=<BD>\config\Default\cad.ico" >> %BaseDir%\bin\MyIniFile.ini 

(エラーメッセージなし)でそれを試してみましたが、その後、私は引用の悪い私のiniファイル内のマーク...また

echo [OEMIcon=<BD>\config\Default\cad.ico] >> %BaseDir%\bin\MyIniFile.ini 
を持っています

が機能しません(同じエラーが再び発生します)。

また、文字列を変数(引用符付き)に格納して引用符を削除することによって、少し作業を試みました。

set OemIconData="OEMIcon=<BD>\config\Default\cad.ico" 
OemIconData=%OemIconData:~1,-1% 

引用符を削除しようとしても同じエラーが発生しました。

私は現在アイデアがありません。なぜそのエラーが発生するのですか?どうすればそれを防ぐことができますか?

答えて

0

<および>は、独自に予約されている特殊文字です。

<は自体の前にコマンド後にそれをすべてを送信し再directer入力、です。

>が出力再directerあり、これはそれが自体の後の場所/ファイル/コマンド前にすべてを送信します。

現在、cmd.exeはように実行します。

  • はエコーecho OEMIcon=<BDBD>\config\Default\cad.ico >> %BaseDir%\bin\MyIniFile.ini
  • のコマンド結果を取得します\config\Default\cad.ico >> %BaseDir%\bin\MyIniFile.ini

我々はそうcmd無視する特殊文字をエスケープする必要がありますへそれはその前に^を追加することによってそれの使用法です。あなたのコマンドは:

echo OEMIcon=^<BD^>\config\Default\cad.ico  >> %BaseDir%\bin\MyIniFile.ini 
関連する問題