2017-08-28 564 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 
相关问题