windows - 如何在不使用引号的情况下在 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
文件。
我该如何解决这个问题?
解决方案
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
推荐阅读
- html - 正则表达式;将标签与特定属性匹配
- angular - Angular Google Recaptcha | 如何获得 recaptcha 令牌结果
- java - 我可以将 WebDrivers 作为 Java 中的全局变量吗
- git - 如何使用脚本循环 git 状态
- unity3d - Unity Inspector 菜单不显示
- create-react-app - 在反应服务器启动期间如何处理“退出状态 1”
- java - 在 Spring Boot / Tomcat 中覆盖上下文路径
- vue.js - 可以同时使用 Tailwind css 和 Bootstrap 4 吗?
- express - 以原始方式多次发送相同的请求。有些返回状态码 204,有些还可以
- sorting - 数据洞察表格图表未正确排序