標籤:
1. 引言
在Windows上,經常需要做一些重複的工作。比如在不同的工作場所需要切換不同的ip;比如有時需要對一堆檔案按1~n進行重新命名;再比如我們需要刪除一大堆檔案,這些檔案名稱字都差不多,但不在同一個目錄獃著…第一次可以忍忍,手動完成了,但次數多了,將會覺得特麻煩和無聊;於是開始用某種程式設計語言寫程式來處理,比如java,c++等,但寫完後才發現花的時間比手動處理還多…。這時候,一些簡單的批處理命令,將會為帶來無窮的便利。
寫這篇部落格的目的是因為不想花時間系統地去記憶這些批處理命令,因此每次遇到需要用到批處理的地方,就百度相關的語句,更新記錄到這裡。
當前更新於:2015年10月6日 14:25:18;
2. 文法
① 環境:在Windows下,寫一個批次程式很簡單,在任何目錄下,右鍵建立一個文字文件,開啟編寫代碼後儲存(注意編碼,否則可能會亂碼),再將該檔案.txt尾碼改為.bat尾碼,雙擊即可運行。
② echo:列印。如:
echo hello world!
③ @:@加在某命令前表示不顯示該命令。如:
@echo hello world!
④ echo off:該命令執行後,之後所有的命令都不會顯示出來(相當於在之後的所有的命令前加了@,對自身無效)。
⑤ pause:暫停。按任意鍵後繼續。
⑥ title:設定視窗標題。如:
title hello world
⑦ ::標籤。配合goto使用。如:
:lable1
:::注釋。如:
::這是一段注釋
⑧ goto:轉跳到某一標籤。如:
goto :lable1
⑨ 設定IP:如:
Netsh interface IP Set Address "本地串連" Static 192.168.0.99 255.255.255.0 192.168.0.1 1
其中“本地串連”是你要設定的適配器的名字;後面的數字依次是ip、網關、子網路遮罩。
⑩ 設定DNS:如:
Netsh interface IP set dns "本地串連" static 192.168.0.1 primary
? set/p xxx=:如:
@set /p var=@echo %var%@pause
意思是:接受鍵盤輸入,並把輸入值賦給var。其中%var%,表示引用var變數。
? if 條件 (命令) else 命令,如:
@if 1==1 (echo 成立) else echo 不成立@pause
3. 案例
① Hello World
@echo Hello World!@title hello world
@pause
② 一鍵填寫ip(網關,子網路遮罩,DNS)
@echo offecho ==============一鍵填寫IP=============title 一鍵填寫IPset ip1=192.168.1.2set ip2=172.16.42.254echo 0:退出echo 1:%ip1%echo 2:%ip2%set/p ip=請輸入數字:if %ip%==0 goto :exitif %ip%==1 goto :ip1if %ip%==2 goto :ip2:ip1echo 正在設定ip:%ip1% ...Netsh interface IP Set Address "本地串連" Static %ip1% 255.255.255.0 192.168.1.1Netsh interface IP set dns "本地串連" static 222.246.129.81 primaryecho 設定成功goto :exit:ip2echo 正在設定ip:%ip2% ...Netsh interface IP Set Address "本地串連" Static %ip2% 255.255.255.0 172.16.42.1Netsh interface IP set dns "本地串連" static 222.246.129.81 primaryecho 設定成功goto :exit:exitecho byepauseexit
Windows 批處理