关于Windows中Linux &&等价命令及脚本执行中断的技术咨询
Windows中Linux &&等价命令及脚本执行中断的技术咨询
嘿,刚好碰到过类似的需求,我来给你捋清楚!在Windows的命令提示符(CMD)里,和Linux下&&功能完全等价的符号就是&&本身!它的逻辑和Linux一致:只有前一条命令执行成功(返回错误码0),后面的命令才会继续运行;如果前一条失败,后面的命令直接跳过,正好满足你“脚本停止”的需求。
针对你给出的例子,原来的分步命令是:
cd\ cd rcA powershell "ls | where {$_.Length -lt 100gb} | Remove-Item -Force -Recurse"
只需要用&&把它们串联起来,就能实现失败即停止的效果:
cd\ && cd rcA && powershell "ls | where {$_.Length -lt 100gb} | Remove-Item -Force -Recurse"
简单解释下这个写法的逻辑:
- 先执行
cd\,如果这条命令失败(虽然概率极低,但比如权限问题),后面的cd rcA和PowerShell命令都不会执行; - 如果
cd\成功,就继续执行cd rcA,要是这个目录不存在或者切换失败,后面的删除命令就直接终止,不会误操作; - 只有前面的CD命令都成功了,才会运行最后的PowerShell清理命令。
另外多说一句,不管是在CMD窗口直接输入,还是写在批处理脚本(.bat/.cmd文件)里,这个&&的用法都是通用的。如果你需要更复杂的错误判断,也可以用IF ERRORLEVEL或者%ERRORLEVEL%变量,但&&无疑是最简洁直观的写法,和你熟悉的Linux用法几乎无缝衔接~
备注:内容来源于stack exchange,提问作者God of Money
相关产品推荐
相关产品推荐

