一、簡單批處理內部命令簡介
1.Echo 命令 –顯示
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法:
echo [{on│off}] [message]
Sample:@echo off / echo hello world
Pause //用pause才能使窗體停止
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中。


2.@ 命令 –隱藏命令本身
表示不顯示@后面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬盤)自然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)

3.Goto 命令
指定跳轉到標簽,找到標簽后,程序將處理從下一行開始的命令。
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,后面會有詳細的解釋。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto命令就是根據這個:來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會理解你的意圖啊。
4.Rem 命令 –注釋
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你 自己日后修改。
Rem Message
Sample:@Rem Here is the description.
5.Pause 命令
運行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
copy a:*.* d:\back
echo Please put a new disk into driver A
pause
goto begin
在這個例子中,驅動器 A 中磁盤上的所有文件均復制到d:\back中。顯示的注釋提示您將另一張磁盤放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁盤,然后按任意鍵繼續處理。
6.Call 命令
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽 。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法:
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數: [Drive:}[Path] FileName 指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。
參考:windows bat腳本編寫
二、在Windows批處理文件中引用日期和時間的方法
1、 %DATE% 輸出的是: yyyy/mm/dd 星期* (例如:2008/12/18 星期四)
引用格式:%DATE:~x,y%
x=起始坐標,y=從x開始截取字符個數
如:
%DATE:~0,4% --> yyyy
%DATE:~5,2% --> mm
%DATE:~8,2% --> dd
如取出格式為 YYYYMMDD 的日期:%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% -->20081218
2、 %TIME% 輸出的是:hh24:mi:ss.ms (例如:10:49:12.17)
引用格式:%TIME:~x,y%
x=起始坐標,y=從x開始截取字符個數
如:
%TIME:~0,2% --> hh
%TIME:~3,2% --> mi
%TIME:~6,2% --> ss
如取出格式為 HHMMSS 的時間:%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% -->104912
輸出格式化后的日期時間:%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% -->20081218104912
三、bat腳本自動創建文件夾
示例:利用bat腳本進行wireshark抓包時 自動創建一系列文件
@Rem 文件以管理員權限運行 @echo off set prefix=E:\pcaplog\ set suffix=.pcap set xiegan=\ :loop @Rem 需要切換到tshark.exe的目錄下 cd C:\Program Files (x86)\Wireshark\ @Rem date:~0,4 從0位置開始的4個字符,2017/10/16 注意斜杠 set h=%TIME:~0,2% If %h% leq 9 (Set h=0%h:~1,1%) set timestr=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2% set daystr=%date:~0,4%%date:~5,2%%date:~8,2% mkdir "%prefix%%daystr% @若文件夾已存在,則不會創建 set dest=%prefix%%daystr%%xiegan%%timestr%%suffix% @Rem tshark或者tshark.exe。eth0是網卡的名字,需要將“本地連接”重命名為eth0 @Rem tshark -i eth0 -s 0 -c 3000 -w %dest% tshark -i eth0 -s 0 -c 5000 -w %dest% goto:loop pause
