Windows cmdshell
對於跨平臺的程序,一般會提供一些有用的命令行工具,所以shell腳本、bat腳本文件就必不可少了。網絡上shell的書、文章都很多的,因此瞭解起來會相對容易的多,而windows下的bat網上則少有涉及。這裏不打算寫windows bat 編程大全,而是簡單對bat作一個簡單的入門級的學習。express
不論在寫shell,仍是bat,它們的設計都遵照這樣一條原則:一切都是命令。Windows下命令是大小寫不敏感的。編程
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 [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 {%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時所需的參數
語法:goto label
跳轉到指定的label。若是指定的label不存在,就繼續執行下一條命令。若是找到label,就從label處繼續執行。若是程序以正常順序執行到一個label處,而不是經過goto跳轉到label,label下的語句仍舊以正常順序執行。
想要了解更多指令參見: