天天看點

Windows cmd

Windows cmd

對于跨平台的程式,通常會提供一些有用的指令行工具,是以shell腳本、bat腳本檔案就必不可少了。網絡上shell的書、文章都不少的,是以了解起來會相對容易的多,而windows下的bat網上則少有涉及。這裡不打算寫windows bat 程式設計大全,而是簡單對bat做一個簡單的入門級的學習。

不論在寫shell,還是bat,它們的設計都遵守這樣一條原則:一切都是指令。Windows下指令是大小寫不敏感的。

基本指令(rem, echo, @,/?)

rem:注釋 (comment, remarks)。參數可以是任何内容。

echo :它有兩個功能:列印消息、調試開關。如果參數是on 或者off,代表打開、關閉調試,如果後面是其它内容,則參數代表要輸出的消息。為什麼說是debug開關呢?如果設定了echo on,随後執行的任何指令及其執行結果都會輸出到标準輸出流。

@用于關閉某個指令的調試資訊,意思是說使用@标注的指令不會打出指令本身、執行結果。

/? 檢視指令幫助

例如:

REM open the cmd echo
@echo on
echo hello, windows cmd 
@echo hello, windows cmd 

REM close the cmd echo
@echo off
echo hello, windows cmd 
@echo hello, windows cmd      

執行結果: 

D:\Note\windows cmd>REM open the cmd echo

D:\Note\windows cmd>echo hello, windows cmd
hello, windows cmd
hello, windows cmd

D:\Note\windows cmd>REM close the cmd echo
hello, windows cmd
hello, windows cmd      

對于REM的指令,也是會打到STD裡,如果不希望看到,就可以使用@标注。 

控制指令(if-else, for-in-do, goto)

if-else

if [not] errorlevel number command [else expression] 基于上一個指令執行的結果進行判定操作

if [not] string1==string2 command [else expression] 判定兩個字元串是否相等

if [not] exist FileName command [else expression]  判定指定的檔案是否存在

If command extensions are enabled, use the following syntax:

if [/i] string1 CompareOp string2 command [else expression] 進行字元串比較 (equ, neq, lss, leq, gtr, geq)

if cmdextversion number command [else expression]

if defined variable command [else expression]

For-in-do

循環執行,指令文法:

for {%variable | %%variable} in (set) do command [CommandLineOptions]

1)For, in, do 是基本結構,必不可少;

2){%variable | %%variable} 必要的,變量大小寫敏感。

在指令提示符中執行for時,for中引用變量時,使用%

在批處理檔案中執行for時,for中引用變量時,使用%%

此外,為了避免與bat檔案的參數 %0到 %9相沖突,是以變量不能是0-9的數字

3)( set ) 必要的。用于指定多個 files, directories, range of values, textstrings。括号不能省。

4)command 必要的,代表要執行的指令。

5)commandLineOptions, 執行command時所需的參數

更多用法,可能參考:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490909(v%3dtechnet.10)

goto

文法:goto label

跳轉到指定的label。如果指定的label不存在,就繼續執行下一條指令。如果找到label,就從label處繼續執行。如果程式以正常順序執行到一個label處,而不是通過goto跳轉到label,label下的語句仍舊以正常順序執行。

Windows cmd

想要了解更多指令參見:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490890(v%3dtechnet.10)

作者: 房繼諾

出處:http://www.cnblogs.com/f1194361820

版權:本文版權歸作者和部落格園共有

歡迎轉載,轉載請需要注明部落格出處

技術交流QQ:1194361820,加好友請注明:來自部落格園,不要說你是部落格園,也可以掃描圖像二維碼直接加我。

上一篇: JVM: GC

繼續閱讀