我的批处理文件正在运行以下代码:
[...]
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 :(得分: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