我正在尝试使用echo
从另一个批处理文件编写。但是,有一行有特殊字符,我无法弄清楚如何写。
我有以下一行:
echo >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" >> "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\OrchestrationCleanUp.bat"
但是写入目标文件的是:
"C:\Windows\system32\cacls.exe" "C:\Windows\system32\config\system"
应该是:
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
我试过把它放在双引号中。
我已经尝试将^放在>
之前我已尝试将其放入变量并使用双引号转义
我已经尝试将其放入变量并使用!在每一端
我已经尝试将它放在一个变量中并使用:在变量名的末尾。
答案 0 :(得分:3)
需要使用^
转义特殊字符,并且%
符号必须加倍。试试这个:
echo之后的(
会阻止某些主要字符出现问题。
echo(^>nul 2^>^&1 "%%SYSTEMROOT%%\system32\cacls.exe" "%%SYSTEMROOT%%\system32\config\system" >> "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\OrchestrationCleanUp.bat"