将特殊字符从一个批处理文件写入另一个

Pet*_*ter 1 escaping batch-file

我正在尝试使用echo. 但是,有一行带有特殊字符,我不知道如何编写。

我有以下几行:

echo >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" >> "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\OrchestrationCleanUp.bat"
Run Code Online (Sandbox Code Playgroud)

但是写入目标文件的内容是:

 "C:\Windows\system32\cacls.exe" "C:\Windows\system32\config\system" 
Run Code Online (Sandbox Code Playgroud)

它应该是:

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
Run Code Online (Sandbox Code Playgroud)

我试过把它放在双引号中。

我试过把 ^ 放在 > 前面

我试过把它放在一个变量中并用双引号将它转义

我试过把它放在一个变量中并使用 ! 在每一端

我试过把它放在一个变量中并在变量名的末尾使用 : 。

fox*_*ive 5

特殊字符需要使用转义^%标志必须加倍。尝试这个:

(后直接回声问题,停止与一些领导人物。

echo(^>nul 2^>^&1 "%%SYSTEMROOT%%\system32\cacls.exe" "%%SYSTEMROOT%%\system32\config\system" >> "c:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\OrchestrationCleanUp.bat"
Run Code Online (Sandbox Code Playgroud)