如何在不使用引号的情况下使用&&内部回声?

时间:2019-09-24 12:33:53

标签: windows batch-file cmd

我想仅使用cmd.exe(使用ShellExecute,C ++)在文件内编写这样的命令,

是这样的:

timeout /t 10 && start cmd.exe /C "ssh -o ..."

我尝试使用这个:

echo timeout /t 10 && start cmd.exe /C "ssh -o ..." > myfile.bat

但是它到达&&时会剪切,并且我不能在整个字符串上使用引号,那我该怎么办?我不想使用cmd.exe以外的任何东西,而只想将其写入.bat文件中。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

1)使用消失的引号。

FOR %%^" in ("") do (
    echo %%~"timeout /t 10 && start cmd.exe /C "ssh -o ..." %%~" > myfile.bat
)

2)转义特殊字符

echo timeout /t 10 ^&^& start cmd.exe /C "ssh -o ..." > myfile.bat

3)使用延迟扩展

setlocal EnableDelayedExpansion 
set "line=timeout /t 10 && start cmd.exe /C "ssh -o ...""
echo !line! > myFile