簡體   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