2017-08-28 560 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

<>是具有其自己的保留用途的特殊字符。

<是輸入重新更直接,這後發送一切入命令本身之前。

>是輸出重新更直接,這本身之後發送一切到位置/文件/指令之前。

目前,cmd.exe執行像這樣:

  • 獲取的BD>\config\Default\cad.ico >> %BaseDir%\bin\MyIniFile.ini
  • 命令結果回聲echo OEMIcon=<BD\config\Default\cad.ico >> %BaseDir%\bin\MyIniFile.ini

我們需要逃跑的特殊字符等等cmd忽略它的用法是在它前面增加一個^。您的命令應該是:

echo OEMIcon=^<BD^>\config\Default\cad.ico  >> %BaseDir%\bin\MyIniFile.ini 
相關問題