繁体   English   中英

什么是Windows命令shell相当于Bash的`true`命令?

[英]What's the Windows command shell equivalent of Bash's `true` command?

我编写了一个Vim插件,用于运行外部命令。 我运行的两个命令是diffgrep ,它们都可以在“正常”操作期间以非零退出代码退出。

(当发现差异时, diff退出退出代码1,当找不到匹配时,退出退出代码1退出grep 。)

出于我的Vimscript的目的,我需要从这些命令返回退出代码0。 到目前为止,我正在构建这样的命令:

diff a b || true

和:

grep foo bar || true

这适用于OS X,它显然适用于一些Windows用户。 但是,当我通过VirtualBox在OS X上运行Windows 7时,使用Git安装程序安装的Bash,我收到错误消息:

'true'不被识别为内部或外部命令,可操作程序或批处理文件。

在Windows上使用的正确的successful-no-op命令是什么?

true大致相当于(exit 0) (括号创建一个以状态0退出的子shell,而不是退出当前shell。

VER>NUL

适合我。

例如,

MKDIR . || VER>NUL

发出错误消息,但它将%ERRORLEVEL%为0。

上下文是Windows cmd shell(由git-cmd.bat脚本使用 ):

在“ 批处理调用之间使用&&||运算符时,使用EXIT /BX退出批处理,其中X>=1表示命令已成功完成 ”,您可以在路径中定义一个true.bat文件:

@%COMSPEC% /C exit 1 >nul
cd .

还将%ERRORLEVEL%为0,但运行速度%ERRORLEVEL%快,写入比ver>nul短一些。 例:

mkdir . 2>nul || cd .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM