Windows cmd

Windows cmdshell

對於跨平臺的程序,一般會提供一些有用的命令行工具,所以shell腳本、bat腳本文件就必不可少了。網絡上shell的書、文章都很多的,因此瞭解起來會相對容易的多,而windows下的bat網上則少有涉及。這裏不打算寫windows bat 編程大全,而是簡單對bat作一個簡單的入門級的學習。express

不論在寫shell,仍是bat,它們的設計都遵照這樣一條原則:一切都是命令。Windows下命令是大小寫不敏感的。編程

 

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

rem:註釋 (comment, remarks)。參數能夠是任何內容。windows

echo :它有兩個功能:打印消息、調試開關。若是參數是on 或者off,表明打開、關閉調試,若是後面是其它內容,則參數表明要輸出的消息。爲何說是debug開關呢?若是設置了echo on,隨後執行的任何命令及其執行結果都會輸出到標準輸出流。網絡

@用於關閉某個命令的調試信息,意思是說使用@標註的命令不會打出命令自己、執行結果。工具

/? 查看命令幫助學習

例如:spa

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裏,若是不但願看到,就可使用@標註。 debug

 

 

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

 

if-else

 

if [noterrorlevel number command [else expression] 基於上一個命令執行的結果進行斷定操做

if [notstring1==string2 command [else expression] 斷定兩個字符串是否相等

if [notexist FileName command [else expression]  斷定指定的文件是否存在

If command extensions are enabled, use the following syntax:

if [/istring1 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下的語句仍舊以正常順序執行。

 

 

 

 

想要了解更多指令參見:

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

相關文章
相關標籤/搜索