① 批處理命令大全
批處理命令大全
批處理是一種在Windows操作系統中處理自動化任務的腳本文件,主要使用命令提示符環境下的命令。以下是批處理中常用的命令及其解釋:
一、基礎命令
1. echo:輸出文本或變數內容到控制台。
2. @echo off:關閉後續命令的回顯,使得腳本運行時只顯示結果而不顯示命令本身。
3. set:設置或改變環境變數的值。
4. call:調用另一個批處理文件。
5. pause:暫停批處理的執行,顯示按任意鍵繼續的信息。
二、文件操作命令
1. del:刪除文件或目錄。
2. :復制文件或目錄。
3. mkdir:創建新目錄。
4. rmdir:刪除空目錄。
三、循環與條件判斷
1. for:用於循環操作,可以遍歷文件集合或對變數進行操作。
2. if:進行條件判斷,根據條件執行不同的命令。常用於判斷文件是否存在、比較數字等場景。
四、系統操作命令
1. start:啟動一個新的窗口或程序。
2. shutdown:關機或重啟計算機。
3. tasklist:顯示當前運行的任務列表。這些命令主要用於與系統交互,控制計算機的某些行為或獲取系統信息。例如,shutdown命令可以用於定時關機或重啟計算機,而tasklist命令則可以查看當前運行的任務列表。這些命令在自動化管理任務、系統維護等方面非常有用。通過組合這些命令,您可以創建復雜的批處理腳本以執行各種自動化任務。此外,還有一些其他命令如ping,用於測試網路連通性,以及處理文本文件的命令如type,這些命令都可以在批處理腳本中使用,以完成特定的任務需求。
② bat文件的用法命令
Echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在以後的例子中體現出來。
@ 命令
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)
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命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣別人看起來才會理解你的意圖啊。
Rem 命令
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。
Rem Message
Sample:@Rem Here is the description.
Pause 命令
運行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
a:*.* d:ack
echo Please put a new disk into driver A
pause
goto begin
在這個例子中,驅動器 A 中磁碟上的所有文件均復制到d:ack中。顯示的注釋提示您將另一張磁碟放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁碟,然後按任意鍵繼續處理。
Call 命令
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數
[Drive:][Path] FileName
指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。
start 命令
調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
入侵常用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先順序類別開始應用程序
REALTIME 在 REALTIME 優先順序類別開始應用程序
WAIT 啟動應用程序並等候它結束
parameters 這些為傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。
choice 命令
choice 使用此命令可以讓用戶輸入一個字元,從而運行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:dosdefrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件運行後,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到end標號處,然後程序將顯示good bye,文件結束。
If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。有三種格式:
⒈if 參數 == 字元串 待執行的命令
參數如果等於指定的字元串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if %1==a format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
⒉if exist 文件名待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如if existconfig.sysedit config.sys
⒊if errorlevel / if not errorlevel 數字待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。
for 命令
for 命令是一個比較復雜的命令,主要用於參數在指定的范圍內循環執行命令。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters 為特定命令指定參數或命令行開關。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %I
如果命令擴展名被啟用,下列額外的 FOR 命令格式會受到
支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 後沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-para
該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)。
FOR /F [options] %variable IN (file-set) DO command
FOR /F [options] %variable IN (string) DO command
FOR /F [options] %variable IN (command) DO command
或者,如果有 usebackq 選項:
FOR /F [options] %variable IN (file-set) DO command
FOR /F [options] %variable IN (string) DO command
FOR /F [options] %variable IN (command) DO command
filenameset 為一個或多個文件名。繼續到 filenameset 中的
下一個文件之前,每份文件都已被打開、讀取並經過處理。
處理包括讀取文件,將其分成一行行的文字,然後將每行
解析成零或更多的符號。然後用已找到的符號字元串變數值
調用 For 循環。以默認方式,/F 通過每個文件的每一行中分開
的第一個空白符號。跳過空白行。您可通過指定可選 options
參數替代默認解析操作。這個帶引號的字元串包括一個或多個
指定不同解析選項的關鍵字。這些關鍵字為:
eol=c - 指一個行注釋字元的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的
默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變數名稱的
格式為一個范圍。通過 nth 符號指定 m
符號字元串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之
分配並接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執行一個後引號的字元串並且
引號字元為文字字元串命令並允許在 fi
中使用雙引號擴起文件名稱。
sample1:
FOR /F eol=; tokens=2,3* delims=, %i in (myfile.txt) do command
會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將
每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或
空格定界符號。請注意,這個 for 程序體的語句引用 %i 來
取得第二個符號,引用 %j 來取得第三個符號,引用 %k
來取得第三個符號後的所有剩餘符號。對於帶有空格的文件
名,您需要用雙引號將文件名括起來。為了用這種方式來使
用雙引號,您還需要使用 usebackq 選項,否則,雙引號會
被理解成是用作定義某個要分析的字元串的。
%i 專門在 for 語句中得到說明,%j 和 %k 是通過
tokens= 選項專門得到說明的。您可以通過 tokens= 一行
指定最多 26 個符號,只要不試圖說明一個高於字母 z 或
Z 的變數。請記住,FOR變數是單一字母、分大小寫和全局的;
同時不能有 52 個以上都在使用中。
您還可以在相鄰字元串上使用 FOR /F 分析邏輯;方法是,
用單引號將括弧之間的 filenameset 括起來。這樣,該字元
串會被當作一個文件中的一個單一輸入行。
最後,您可以用 FOR /F 命令來分析命令的輸出。方法是,將
括弧之間的 filenameset 變成一個反括字元串。該字元串會
被當作命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進
內存,並被當作文件分析。因此,以下例子:
FOR /F usebackq delims== %i IN (`set`) DO @echo %i
會枚舉當前環境中的環境變數名稱。
⒒Ping命令
Ping命令可以測試計算機名和計算機的IP地址,嚴正與對方計算機的連接,通過向對方主機發送「網際消息控制協議 (ICMP)」回響請求消息來驗證與對方 TCP/IP 計算機的 IP 級連接。回響應答消息的接收情況將和往返過程的次數一起顯示出來。Ping 是用於檢測網路連接性、可到達性和名稱解析的疑難問題的主要 TCP/IP 命令。如果不帶參數,ping 將顯示幫助。
12. AT命令
AT 命令安排在特定日期和時間運行命令和程序。
要使用 AT 命令,計劃服務必須已在運行中。
AT [\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\computername] time [/INTERACTⅣE] [ /EVERY:date[,...] | /NEXT:date[,...]] command
\computername 指定遠程計算機。如果省略這個參數,會計劃在本地計算機上運行命令。
id 指定給已計劃命令的識別號。
/delete 刪除某個已計劃的命令。如果省略 id,計算機上所有已計劃的命令都會被刪除。
/yes 不需要進一步確認時,跟刪除所有作業的命令一起使用。
time 指定運行命令的時間。
/interactive 允許作業在運行時,與當時登錄的用戶桌面進行交互。
/every:date[,...] 指定在每周或每月的特定日期運行命令。如果省略日期,則默認為在的運行。
/next:date[,...] 指定在下一個指定日期(如,下周四)運行命令。如果省略日期,則默認為在的運行。
command 准備運行的 Windows NT 命令或批處理程序。
③ linux 常用目錄文件操作命令有哪些
1. 最常用的命令列表
下面列出十個在使用linux過程中使用頻率最高的命令。這里只作簡單介紹,具體用法請參考後面內容。
cat,顯示文件內容。
cd,改變目錄路徑。
cp,復制文件。
find,查找文件。
grep,搜索、過濾信息。
ls,列出目錄信息。
more,分頁顯示。
rm,刪除文件或目錄。
vi,調用vi文本編輯器。
who,顯示登錄用戶信息。
2. chmod----改變一個或多個文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當chmod不能改變文件模式時,不通知文件的用戶
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
--reference=filename
參照filename的許可權來設置許可權
-v,--verbose
無論修改是否成功,輸出每個文件的信息
--version
輸出版本信息。
who
u
用戶
g
組
o
其它
a
所有用戶(默認)
opcode
+
增加許可權
-
刪除許可權
=
重新分配許可權
permission
r
讀
w
寫
x
執行
s
設置用戶(或組)的ID號
t
設置粘著位(sticky bit),防止文件或目錄被非屬主刪除
u
用戶的當前許可權
g
組的當前許可權
o
其他用戶的當前許可權
作為選擇,我們多數用三位八進制數字的形式來表示許可權,第一位指定屬主的許可權,第二位指定組許可權,第三位指定其他用戶的許可權,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定許可權。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的許可權。
還可設置第四位,它位於三位許可權序列的前面,第四位數字取值是4,2,1,代表意思如下:
4,執行時設置用戶ID,用於授權給基於文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用於授權給基於文件所在組的進程,而不是基於創建此進程的用戶。
1,設置粘著位。
實例:
$ chmod u+x file 給file的屬主增加執行許可權
$ chmod 751 file 給file的屬主分配讀、寫、執行(7)的許可權,給file的所在組分配讀、執行(5)的許可權,給其他用戶分配執行(1)的許可權
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 為所有用戶分配讀許可權
$ chmod 444 file 同上例
$ chmod a-wx,a+r 同上例
$ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的許可權
$ chmod 4755 設置用ID,給屬主分配讀、寫和執行許可權,給組和其他用戶分配讀、執行的許可權。
3. chgrp----修改文件或目錄的所屬組
chgrp [options] newgroup files/directorys
組名可以用組的ID號,也可用/etc/group中的組名。只有文件的屬主或特權用戶(root)才可改變它的組。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當不能改變文件組屬性時,不通知文件的用戶
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
--reference=filename
參照filename的組信息來設置當前文件的組
-v,--verbose
輸出詳細信息
--version
輸出版本信息。
實例:
$ chgrp root test 把test的所屬組更改root組
$ chgrp -R mysql test 遞歸地把test目錄及該目錄下所有文件和子目錄的組屬性設置成mysql
$ chgrp root * 把當前目錄中所有文件的組屬性設置成root
4. chown----設置一個或多個文件或目錄的屬主身份
chown [options] newowner files/directorys
新的屬主可以是用戶的ID號,也可以是/etc/passwd里的登錄名。chown也可接受這樣的形式:newowner:newgroup或newowner.newgroup。同時改變所屬組的屬性。如果句點和冒號後沒有組名,則組改變為新屬主的組。只有文件或目錄的當前屬主才有權改變它的屬性。
options:
-c,--changes
只輸出被改變文件的信息
--dereference
跟蹤符號鏈接
-h,--no-dereference
改變每一個符號鏈的屬主身份,而不是被引用文件的屬主身份
-f,--silent,--quiet
當不能改變文件屬主屬性時,不通知文件的用戶
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應到目錄下所有文件和子目錄
--reference=filename
把屬主改變成filename文件的屬主
-v,--verbose
輸出詳細信息
--version
輸出版本信息。
實例:
$ chown root test 把test文件的屬主改進root
$ chown -R root test_directory 遞歸地把test_directory目錄下的所有文件屬主改成root
$ chown --dereference root test_link 把test_link鏈接的原文件屬主改成root,鏈接文件屬主不變
$ chown --no-dereference root test_link 把test_link的鏈接文件屬主改成root,原文件屬主不變
5. date----顯示、修改系統時間
date [options][+format][date]
$ date -s 06/09/2004 修改日期(按月日年格式)
$ date -s 13:56:00 修改時間(按時分秒格式)
$ date -r test 顯示test文件最後一次的修改時間
$ date +'%Y-%m-%d' 以yyyy-mm-dd格式顯示日期,其它格式請參考幫助
$ clock -r 查詢BIOS時間
$ clock -w 把修改後的時間寫回BIOS
6. df-----顯示已安裝文件系統的磁碟容量狀態
df [options][name]
$ df -h 以友好的格式輸出所有已安裝文件系統的磁碟容量狀態
$ df -m /home 以M為單位輸出home目錄的磁碟容量狀態
$ df -k 以K為單位輸出所有已安裝文件系統的磁碟容量狀態
$ df -i 報告空閑的、用過的或部份用過的(百份比)索引節點
$ df -t ext3 僅顯示文件類型為ext3的文件系統的磁碟狀態
$ df -x ext3 僅顯示文件類型不為ext3的文件系統的磁碟狀態
$ df -T 除顯示文件系統磁碟容量大小外還顯示文件系統類型
$ df -l 僅顯示本地文件系統。
7. fdisk----分區表查詢工具
fdisk [options][driver]
$ fdisk -l 列出所有分區信息
8. hdparm----硬碟管理
hdparm [options][driver]
$ hdparm -d /dev/hda 顯示硬碟的DMA模式是不打開,1代表on
$ hdparm -tT /dev/hda 測試硬碟的寫性能
$ hdparm -d1 /dev/hda 開啟dma功能
$ hdparm -d1 -X68 -c3 -m16 /dev/hda
選項說明:
-c3:把硬碟的IO模式從16位轉成32位。
-m16:改變硬碟的多路扇區的讀功能,-m16使硬碟在一次I/O中斷中讀入16個扇區的數據。
-d1:打開DMA模式。
-X68:支持ATA66的數據傳輸模式。下面是其它模式的設置對照
ATA33.......參數是-X66
ATA66.......參數是-X68
ATA100......參數是-X69
$ hdparm -k1 /dev/hda 保存設置
9. ln-----為文件建立別名
ln [options] sourcename [destname]
ln [options] sourcenames destdirectory
$ ln -s file1 file2 建立一個到file1的符號鏈接file2,刪除file2不會影響file1
$ ln -s -f file1 file2 建立一個到file1的符號鏈接file2,並不提示是否重寫
10. shutdown-----終止所有進程序,關閉計算機。
shutdown [options] when [message]
用when可以是指定的關機時間(以hh:mm格式)、關機前要等待的時間(以+m格式)、或者now。message指定一條廣播消息通知所有用戶退出系統。showdown給所有進程發送SIGTERM信號,並調用init 1執行實際的關機動作。
$ shutdown -c 取消正在進行的關閉操作
$ shutdown -f 快速重新啟動,在重新啟動時禁止對fsck的常規調用
$ shutdown -h 當關閉完成時停止系統
$ shutdown -k 輸出警告信息,但禁止實際的關閉
$ shutdown -n 不調用init就執行關閉
$ shutdown -r 當關閉完成時重新啟動系統
$ shutdown -t 5 在殺死進程和改變運行級別之間確保延時5秒
11. sleep-----執行另一個命令之前等待的時間
sleep amount [units]
units默認為秒(s),m表示分鍾,h表示小時,d表示天。
12. swapon/swapoff-----啟動和關閉交換分區
swapon/swapoff [options] device
$ swapon -s 顯示交換分區信息
$ swapon -a 激活所有在/etc/fstab中有sw標記的分區
$ swapon -p 1 設置交換分區優先順序為1
13. tune2fs-----調整Linux第二擴展文件系統的參數
tune2fs [options] device
$ tune2fs -l /dev/hda1 顯示hda1分區的超級塊內容
$ tune2fs -c 100 /dev/hda1 設置hda1分區每mount100次就進行磁碟檢查
14. uniq----過濾、統計、刪除重復行
uniq [options][file1 [files]]
$ uniq -c file file中的重復行輸出一次,並在每行前顯示重復次數
$ uniq -d file file中的重復行輸出一次,但不輸出唯一的行
$ uniq -u file 只輸出file中的唯一行
$ uniq file1 file2 把file1中的重復的相鄰行刪除,並把每行的一個拷貝送到file2
15. wc-----輸出每個文件中的字元數、單詞數及行數。
wc [options][files]
$ wc -l file 輸出file中的行數
$ wc -w file 輸出file中的單詞數
$ wc -c file 輸出file中的字元數