bat 命令 經常使用配置及其用法

1.初衷:html

bat 批處理文件:當我懶得一個個操做的時候,能夠把若干東西放到一個文件裏面,開機運行或者須要的時候手動運行、節省時間。web

 

2.命令集說明windows

2.1 經常使用命令api

2.1.0 help瀏覽器

命令 /?      help 命令
type /? >>tmp.txt  (把 type 命令的幫助信息寫入到tmp.txt文件裏)

2.1.1 @  ( 僅影響當前行, 相對於echo off 來講,是遮住了一行,而不是擋住了一片 )tcp

不顯示@後面的命令,在入侵過程當中(例如使用批處理來格式化敵人的硬盤)天然不能讓對方看到你使用的命令啦。
eg 關閉回顯(以後的指令再也不顯示,只輸出執行結果):@echo off函數

2.1.2 echo學習

打開回顯或關閉請求回顯功能,或顯示消息。若是沒有任何參數,echo 命令將顯示當前回顯設置。網站

echo 顯示當前回顯設置編碼

echo on   打開回顯,即顯示指令輸入及其輸出結果

echo off    隱藏後面的全部指令及其輸出結果( 在遇到 echo  on  以前 )

echo 'hello'   單純輸出字符串

2.1.3 rem    (可用::,: 代替rem, :Here is the description , ::Here is the description)

rem   註釋命令  :  @Rem Here is the description

2.1.4 pause

pause     暫停,使程序掛起

@echo off
:begin
copy a:*.* d:\\back
echo Please put a new disk into driver A
pause
goto begin

,驅動器 A 中磁盤上的全部文件均複製到d:\\back中。顯示的註釋提示您將另外一張磁盤放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁盤,而後按任意鍵繼續處理

2.1.5 call

call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]           指定要調用的批處理程序的位置和名稱。filename 參數必須具備 .bat 或 .cmd 擴展名

一個批處理程序調用另外一個批處理程序,而且不終止父批處理程序

2.1.6 start 

啓動單獨的「命令提示符」窗口來運行指定程序或命令    

start ["title"] [/dPath] [/min] [/max] [{/separate |/shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}][/wait] [/B] [FileName] [parameters]

 

"title" 指定在「命令提示符」窗口標題欄中顯示的標題。

/dpatch 指定啓動目錄。

/i 將 Cmd.exe 啓動環境傳送到新的「命令提示符」窗口。

/min 啓動新的最小化窗口。

/max 啓動新的最大化窗口。

/separate 在單獨的內存空間啓動 16 位程序。

/shared 在共享的內存空間啓動 16 位程序。

/low 以空閒優先級啓動應用程序。

/normal 以通常優先級啓動應用程序。

/high 以高優先級啓動應用程序。

/realtime 以實時優先級啓動應用程序。

/abovenormal 以超出常規優先級的方式啓動應用程序。

/belownormal 以低出常規優先級的方式啓動應用程序。

/wait 啓動應用程序,並等待其結束。

/b 啓動應用程序時沒必要打開新的「命令提示符」窗口。除非應用程序啓用 CTRL+C,不然將忽略 CTRL+C 操做。使用 CTRL+BREAK 中斷應用程序。

2.1.7 choice

 choice 使用此命令可讓用戶輸入一個字符,從而運行不一樣的命令 

@echo off
choice /c dme
if errorlevel 3 goto defrag
if errorlevel 2 goto mem
if errotlevel 1 goto end

:defrag
echo '1'
goto end

:mem
echo '2'
goto end

:end
echo good bye

pause

2.1.8 if

if 表示將判斷是否符合規定的條件,從而決定執行不一樣的命令。 有三種格式

if "參數" == "字符串"     if "%1"=="a" format a:

if exist config.sys edit config.sys              if exist config.sys type config.sys

if errorlevel 2 goto x2

 

else 連用

if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )

2.1.9 for

循環操做

 

2.2 組合命令

2.2.1 & 

同時執行多條命令,而無論命令是否執行成功          dir z: & dir c:\\Ex4rch

2.2.2 &&

同時執行多條命令,當碰到執行出錯的命令後將不執行後面的命令       dir z: && dir c:\\Ex4rch

2.2.3  ||

同時執行多條命令,當碰到執行正確的命令後將不執行後面的命令,若是沒有出現正確的命令則一直執行完全部命令          dir fdImg || start website.txt

 

2.3  管道命令

2.3.1  |           

第一條命令 | 第二條命令 [| 第三條命令...]

第一條命令的結果做爲第二條命令的參數來使用           netstat -n -p tcp|find ":49264">D:\\IP.log

2.3.2  >、>>

輸出重定向命令

將一條命令或某個程序輸出結果的重定向到特定文件中, > 與 >>的區別在於,>會清除調原有文件中的內容後寫入指定文件,而>>只會追加內容到指定文件中

echo hello world>website.txt

 

2.4 系統參數  ( 用戶及其設置不一樣值不一樣 )

%SystemRoot% === C:\WINDOWS (%windir% 一樣)
%ProgramFiles% === C:\Program Files


%USERPROFILE% === C:\Documents and Settings\Administrator (子目錄有「桌面」,「開始菜單」,「收藏夾」等)             

如: 訪問我桌面的某個文檔       start %USERPROFILE%\desktop\website.txt         

 C:\Users\admin\Desktop>start C:\Users\admin\desktop\website.txt

 

%APPDATA% === C:\Documents and Settings\Administrator\Application Data
%TEMP% === C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (%TEM% 一樣)
%APPDATA% === C:\Documents and Settings\Administrator\Application Data
%OS% === Windows_NT (系統)
%Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (本來的設置)
%HOMEDRIVE% === C: (系統盤)
%HOMEPATH% === \Documents and Settings\Administrator

 

3.實際經驗分享

3.1 .bat 文件亂碼問題

新建一個txt文件   -   文件」=》「另存爲」,  在編碼的時候選擇「ANSI」   -   更改成 .bat 後綴  或者 .cmd 

3.2 批量打開程序

@echo off

start C:\Users\admin\Desktop\mark.txt
start C:\Users\admin\Desktop\route.txt
start C:\Users\admin\Desktop\styleLogin.txt

start C:\"Program Files (x86)"\Tencent\QQ\Bin\QQScLauncher.exe
start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe
start C:\Users\admin\AppData\Roaming\360se6\Application\360se.exe

start C:\Users\admin\Desktop\text.xlsx

echo "hello myboy"

pause

擴展:

開機啓動目錄

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

3.3 建立目錄文件並比較

dir*.exe>exeback.txt & dir *.dll>dllback.txt

fc exeback.txt exeback1.txt>diff.txt

3.4 傳遞參數給批處理文件

 %[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字符串。

變量能夠從%0到%9,%0表示批處理命令自己,其它參數字符串用 %1 到 %9 順序表示。

call test2.bat "hello" "haha" (執行同目錄下的「test2.bat」文件,並輸入兩個參數)
在「test2.bat」文件裏寫:
echo %1 (打印: "hello")
echo %2 (打印: "haha")
echo %0 (打印: test2.bat)
echo %19 (打印: "hello"9)


 

4.經常使用 api

md d:\aa  建立文件夾

set /p pass=請輸入密碼      等待用戶輸入、同時設置變量 ( 附帶 pause 做用 )

color 0a     設置控制檯顏色   ( 背景色 0   文本顏色  a   ,  both : 0-f )

cls : 清屏

start C:\Users\admin\AppData\Roaming\360se6\Application\360se.exe http://www.baidu.com    打開瀏覽器 並訪問網站

修改文件的文件名    rename test.jpg test2.JPG         rename *.jpg *.888.JPG

ren 原文件名 新文件名 重命名文件名
tree 以樹形結構顯示出目錄,用參數-f 將列出第個文件夾中文件名稱
type 文件名 顯示文本文件的內容

tasklist >list.txt   將全部進程保存到list文件中(默認保存到當前目錄)

 

5. 查看內置命令幫助指令

ver /? cmd /? set /? rem /?
if /? echo /? goto /? for /?
shift /? call /? type /? find /?
findstr /? copy /?

 

6.字符串處理

6.1  割字符串,以查看時間爲例

%源字符串:~起始值,截取長度%  (起始值從0開始;截取長度是可選的,若是省略逗號和截取長度,將會從起始值截取到結尾;
截取長度若是是負數,表示截取到倒數第幾個。)
"%time%"  顯示如:"11:04:23.03" (完整的時間"hh:mm:ss.tt")
"%time:~0,5%" 顯示"hh:mm"(即"11:04"),其中0表示從右向左移位操做的個數,5表示從左向右移位操做的個數
"%time:~0,8%" 顯示標準時間格式"hh:mm:ss"(即"11:04:23",前8個字符串)
"%time:~3,-3%"顯示"mm:ss"(即從第4個開始,截去最後3個的字符串)
"%time:~3%" 顯示"04:23.03"(即去掉前4個字符串)
"%time:~-3%" 顯示".tt"(即最後3個字符串)
上面的字串分割格式,也能夠用於其它地方,如目錄路徑:"%cd:~0,10%"

6.2  替換字符串

set a="abcd1234"
echo %a% 顯示:"abcd1234"
set a=%a:1=kk% 替換「1」爲「kk」
echo %a% 顯示:"abcdkk234"

 

6.3 字符串合併

set str1=%str1%%str2%    (合併 str1 和 str2)

6.4  計算字符串長度

沒有現成的函數。以下程序利用 goto造成循環,不斷將字符串截短1,並記錄截短的次數,到字符串變成空時的次數即長度。
set testStr=This is a test string
:: 將 testStr 複製到str,str 是個臨時字符串
set str=%testStr%
:: 標籤,用於goto跳轉
:next1
:: 判斷str是否是空,若是不是則執行下邊的語句
if not "%str%"=="" (
:: 算術運算,使num的值自增1,至關於num++或者++num語句
set /a num+=1
:: 截取字符串,每次截短1
set "str=%str:~1%"
:: 跳轉到next1標籤: 這裏利用goto和標籤,構成循環結構
goto next1
)
:: 當以上循環結構執行完畢時,會執行下邊的語句
echo testStr=%testStr%
echo testStr的長度爲:%num%

 

7. 文件處理

 清空文件夾   del          del  /s /q test         ( 完全刪除 指定文件 即  清空文件夾)

刪除文件夾   rd  rmdir          rd   /s /q test     直接刪除整個文件夾

新建文件夾     md  mkdir   ::md %cd%\hello\cd      mkdir %cd%\hello\cd

 

 

相關指令含義

/S  除目錄自己外,還將刪除指定目錄下的全部子目錄
/Q 安靜模式,帶 /S 刪除目錄樹時不要求確認

 

 

last. 相關文檔

windows bat腳本編寫

Bat命令學習

BAT 批處理腳本 教程

相關文章
相關標籤/搜索