首页 > 解决方案 > 如何在不使用引号的情况下在 echo 中使用 &&?

问题描述

我想只使用 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文件。

我该如何解决这个问题?

标签: windowsbatch-filecmd

解决方案


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

推荐阅读