天天看點

【windows指令】--cmd常用指令

打開"運作"對話框(Win+R),輸入cmd,打開控制台指令視窗...

也可以通過cmd /c 指令 和 cmd /k 指令的方式來直接運作指令

注:/c表示執行完指令後關閉cmd視窗;/k表示執行完指令後保留cmd視窗

# 控制台指令視窗中一些技巧

tab補全功能

指令參數的路徑:要使用反斜杠'\',不要使用正斜杠'/'   如:del d:\test2\file\my.txt

指令參數的路徑:若存在空格,應使用雙引号将路徑引起來  如:del "d:\program files\file\my.txt"

檔案及目錄名中不能包含下列任何字元:\ / : * ? " < > |

rem  // 在批處理檔案中添加注解,其後的指令不會被執行,但會回顯

::  // ::也可以起到rem的注釋作用,且不會有回顯

任何以冒号:開頭的字元行, 在批進行中都被視作标号(label), 而直接忽略其後的所有内容

有效标号:冒号後緊跟一個以字母數字開頭的字元串,goto語句可以識别

無效标号:冒号後緊跟一個非字母數字的一個特殊符号,goto無法識别的标号,可以起到注釋作用,::常被用作注釋符号

選擇模式

需要注意的是,控制台指令視窗變成選擇模式時,會阻塞目前正在執行的指令,需要按回車才能繼續執行

注:特别是win10系統,在控制台指令視窗中按住左鍵拖動一下滑鼠,就會進入選擇模式

【windows指令】--cmd常用指令

0. 擷取幫助

command /?  // 檢視command指令幫助說明

1. 中斷指令執行

Ctrl + Z

2. 檔案/目錄

cd   切換目錄

例:cd   // 顯示目前目錄

例:cd ..   // 進入父目錄

例:cd /d d:   // 進入上次d盤所在的目錄(或在直接輸入:d:)

例:cd /d d:\   // 進入d盤根目錄

例:cd d: // 顯示上次d盤所在的目錄

例:cd /d d:\src // 進入d:\src目錄

例:cd prj\src\view  // 進入目前目錄下的prj\src\view檔案夾

pushd  popd  使用棧來維護目前目錄

md d:\mp3 // 在C:\建立mp3檔案夾

md d:\mp4 // 在D:\建立mp4檔案夾

cd /d d:\mp4 // 更改目前目錄為d:\mp4

pushd c:\mp3 // 将目前目錄d:\mp4入棧,并切換目前目錄為c:\mp3

popd  // 将剛才儲存的d:\mp4彈棧,并設定為目前目錄

dir  顯示目錄中的内容

例:dir   // 顯示目前目錄中的子檔案夾與檔案

例:dir /b  // 隻顯示目前目錄中的子檔案夾與檔案的檔案名

例:dir /p  // 分頁顯示目前目錄中的子檔案夾與檔案

例:dir /ad  // 顯示目前目錄中的子檔案夾

例:dir /a-d  // 顯示目前目錄中的檔案

例:dir c:\test   // 顯示c:\test目錄中的内容

例:dir keys.txt  // 顯示目前目錄中keys.txt的資訊

例:dir /S   // 遞歸顯示目前目錄中的内容

例:dir key*  // 顯示目前目錄下以key開頭的檔案和檔案夾的資訊

例:dir /AH /OS  // 隻顯示目前目錄中隐藏的檔案和目錄,并按照檔案大小從小到大排序

tree 顯示目錄結構

例:tree d:\myfiles  // 顯示d:\myfiles目錄結構

ren  檔案或目錄重命名

例:ren rec.txt rec.ini  // 将目前目錄下的rec.txt檔案重命名為rec.ini

例:ren c:\test test_01  // 将c盤下的test檔案夾重命名為test_01

例:ren Logs.txt Logs-%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.txt  // 将目前目錄下的Logs.txt檔案重命名為Logs-20150114_2135.txt或Logs-20150114_ 812.txt(注意:小時隻有個位數時會多一個空格,可以使用字元串替換:将空格替換成0)

md  建立目錄

例:md movie music  // 在目前目錄中建立名為movie和music的檔案夾

例:md d:\test\movie  // 建立d:\test\movie目錄

rd  删除目錄

例:rd movie // 删除目前目錄下的movie空檔案夾

例:rd /s /q d:\test  // 使用安靜模式删除d:\test(除目錄本身外,還将删除指定目錄下的所有子目錄和檔案)

copy 拷貝檔案

例:copy key.txt c:\doc  // 将目前目錄下的key.txt拷貝到c:\doc下(若doc中也存在一個key.txt檔案,會詢問是否覆寫)

例:copy jobs c:\doc  // 将目前目錄下jobs檔案夾中檔案(不遞歸子目錄)拷貝到c:\doc下(若doc中也存在相應的檔案,會詢問是否覆寫)

例:copy key.txt c:\doc\key_bak.txt  // 将目前目錄下的key.txt拷貝到c:\doc下,并重命名為key_bak.txt(若doc中也存在一個key_bak.txt檔案,會詢問是否覆寫)

例:copy /Y key.txt c:\doc  // 将目前目錄下的key.txt拷貝到c:\doc下(不詢問,直接覆寫寫)

例:copy key.txt +  // 複制檔案到自己,實際上是修改了檔案日期

例:copy /Y key1.txt + key2.txt key.txt  // 将目前目錄下的key1.txt與key2.txt的内容合并寫入key.txt中(不詢問,直接覆寫寫)

例:copy /B art_2.7z.* art_2.7z    // 将目前目錄下的art_2.7z.開頭的所有檔案(按照名稱升序排序)依次合并生成art_2.7z

例:copy /B art_2.7z.001+art_2.7z.002 art_2.7z    // 将目前目錄下的art_2.7z.001、art_2.7z.002檔案合并生成art_2.7z

xcopy  更強大的複制指令

例:xcopy c:\bat\hai d:\hello\ /y /h /e /f /c    // 将c:\bat\hai中的所有内容拷貝到d:\hello中  注意:需要在hello後加上\  表示hello為一個目錄,否則xcopy會詢問hello是F,還是D

例:xcopy c:\bat\hai d:\hello\ /d:12-29-2010  // 将c:\bat\hai中的2010年12月29日後更改的檔案拷貝到d:\hello中

robocopy  更強大的複制指令

例:robocopy .\Plugins .\PluginsDest /MIR /xd Intermediate Binaries  // 将目前目錄下Plugins中所有内容(排除名為Intermediate和Binaries的檔案夾)保留目錄結構拷貝到目前目錄下的PluginsDest中(PluginsDest不存在會自動建立)

例:robocopy c:\test d:\test2 /MIR /xd Intermediate /xf UE4Editor-SGame-Win64-DebugGame.dll *.pdb // 将c:\test中所有内容(排除名為UE4Editor-SGame-Win64-DebugGame.dll和pdb字尾的檔案)保留目錄結構拷貝到d:\test2中(d:\test2不存在會自動建立)

move 移動檔案

例:move *.png test  // 将目前目錄下的png圖檔移動到目前目錄下test檔案夾中 (若test中也存在同名的png圖檔,會詢問是否覆寫)

例:move /Y *.png test  // 将目前目錄下的png圖檔移動到目前目錄下test檔案夾中 (不詢問,直接覆寫寫)

例:move 1.png d:\test\2.png  // 将目前目錄下的1.png移動到d盤test檔案夾中,并重命名為2.png (若test中也存在同名的png圖檔,會詢問是否覆寫)

例:move test d:\new  // 若d盤中存在new檔案夾,将目前目錄下的test檔案夾移動到d盤new檔案夾中;若不存在,将目前目錄下的test檔案夾移動到d盤,并重命名為new

del 删除檔案   注意:目錄及子目錄都不會删除

例:del test  // 删除目前目錄下的test檔案夾中的所有非隻讀檔案(子目錄下的檔案不删除;删除前會進行确認;等價于del test\*)

例:del /f test  // 删除目前目錄下的test檔案夾中的所有檔案(含隻讀檔案;子目錄下的檔案不删除;删除前會進行确認;等價于del /f test\*)

例:del /f /s /q test d:\test2\*.doc  // 删除目前目錄下的test檔案夾中所有檔案及d:\test2中所有doc檔案(含隻讀檔案;遞歸子目錄下的檔案;删除前不确認)

++++++++++++++++++++++

/ar、/ah、/as、/aa 分别表示删除隻讀、隐藏、系統、存檔檔案

/a-r、/a-h、/a-s、/a-a 分别表示删除除隻讀、隐藏、系統、存檔以外的檔案

++++++++++++++++++++++

例:del /ar *.* // 删除目前目錄下所有隻讀檔案

例:del /a-s *.* // 删除目前目錄下除系統檔案以外的所有檔案

replace 替換檔案【即使這個檔案在使用,仍然可以替換成功】

例:replace d:\love.mp3 d:\mp3   // 使用d盤下的love.mp3強制替換d盤mp3目錄中的love.mp3檔案

mklink  建立符号連結(win7引入);建立的符号連結檔案上會有一個類似快捷方式的箭頭

win7下的mklink指令通過指定參數可以建立出不同形式的檔案或目錄連結,分為硬連結(hard link)、符号連結(symbolic link)和目錄聯接(junction)三種。

(1) 符号連結(symbolic link)

 建立一個軟連結相當于建立一個檔案(或目錄),這個檔案(或目錄)用于指向别的檔案(或目錄),和win的快捷方式有些類似。

  删除這個連結,對原來的檔案(或目錄)沒有影像沒有任何影響;而當你删除原檔案(或目錄)時,再打開連結則會提示“位置不可用”。

(2) 目錄聯接(junction)

 作用基本和符号連結類似。差別在于,目錄聯接在建立時會自動引用原目錄的絕對路徑,而符号連結允許相對路徑的引用。

(3) 硬連結(hard link)

 建立一個硬連結相當于給檔案建立了一個别名,例如對1.txt建立了名字為2.txt的硬連結;

  若使用記事本對1.txt進行修改,則2.txt也同時被修改,若删除1.txt,則2.txt依然存在,且内容與1.txt一樣。

建立連結請注意:

a、建立檔案或目錄連結限于 NTFS 檔案系統;符号連結(目錄聯接)的建立可以跨分區(如:在d盤可以建立c盤檔案或目錄的連結),硬連結隻能建立同一分區内的檔案指向

b、硬連結隻能用于檔案,不能用于目錄;目錄聯接隻能用于目錄;符号連結則均可以;

c、硬連結不允許對空檔案建立連結,符号(軟)連結可以。

+++++++++++++++++++++++++++++++++

mklink [[/d] | [/h] | [/j]] Link Target

/d   建立目錄符号連結。黙認為檔案符号連結。

/h   建立硬連結,而不是符号連結。

/j   建立目錄聯接。

Link  指定新的符号連結名稱。

Target 指定新連結引用的路徑(相對或絕對)。

+++++++++++++++++++++++++++++++++

例:mklink /j "C:\Users" "D:\Users"   // 建立D盤Users目錄聯接到C槽,并命名為Users

attrib  檢視或修改檔案或目錄的屬性  【A:存檔  R:隻讀  S:系統  H:隐藏】

例:attrib 1.txt   // 檢視目前目錄下1.txt的屬性

例:attrib -R 1.txt  // 去掉1.txt的隻讀屬性

例:attrib +H movie  // 隐藏movie檔案夾

assoc 設定'檔案擴充名'關聯到的'檔案類型'

例:assoc // 顯示所有'檔案擴充名'關聯

例:assoc .txt // 顯示.txt代表的'檔案類型',結果顯示.txt=txtfile

例:assoc .doc // 顯示.doc代表的'檔案類型',結果顯示.doc=Word.Document.8

例:assoc .exe // 顯示.exe代表的'檔案類型',結果顯示.exe=exefile

例:assoc .txt=txtfile  // 恢複.txt的正确關聯

ftype 設定'檔案類型'關聯到的'執行程式和參數'

例:ftype // 顯示所有'檔案類型'關聯

例:ftype exefile // 顯示exefile類型關聯的指令行,結果顯示 exefile="%1" %*

例:ftype txtfile=C:\Windows\notepad.exe %1 // 設定txtfile類型關聯的指令行為:C:\Windows\notepad.exe %1

當輕按兩下一個.txt檔案時,windows并不是根據.txt直接判斷用notepad.exe打開

而是先判斷.txt屬于txtfile'檔案類型';再調用txtfile關聯的指令行:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1

forfiles 遞歸目錄執行指令

例:forfiles /p . /m .svn /s /c "cmd /c svn up -r12005" // 在目前目錄下查找含有.svn的檔案或目錄(遞歸子目錄),并對該目錄執行指定版本号svn更新

例:forfiles /p c:\myfiles /m .svn /s /c "cmd /c svn up -r12005" // 在c:\myfiles目錄下查找含有.svn的檔案或目錄(遞歸子目錄),并對該目錄執行指定版本号svn更新

3. 檔案檢視

type 顯示文本檔案内容

例:type c:\11.txt   // 顯示c盤中11.txt的文本内容

例:type conf.ini  // 顯示目前目錄下conf.ini的文本内容

例:type c:\11.txt | more  // 分頁顯示c盤中11.txt的文本内容

more 逐屏的顯示文本檔案内容

例:more conf.ini  //  逐屏的顯示目前目錄下conf.ini的文本内容   【空格:下一屏 q:退出 】

4. 系統資料庫指令

reg 系統資料庫相關操作

參數說明:

KeyName [\Machine]FullKey

           Machine為遠端機器的機器名 - 忽略預設到目前機器。

           遠端機器上隻有 HKLM 和 HKU。

           FullKey ROOTKEY+SubKey

           ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]

           SubKey 所選ROOTKEY下系統資料庫項的完整名

/v        所選項之下要添加的值名

/ve      為系統資料庫項添加空白值名<無名稱>

/t        RegKey 資料類型

           [ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |

           REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |

           REG_NONE | REG_EXPAND_SZ ]

           如果忽略,則采用 REG_SZ

/s        指定一個在 REG_MULTI_SZ 資料字元串中

           用作分隔符的字元;如果忽略,則将""用作分隔符

/d        要配置設定給添加的系統資料庫ValueName的資料

/f        不提示,強行改寫現有系統資料庫項

例:reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /t REG_SZ /d "c:\tools\myapp.exe" /f  // 強制添加一條開機啟動c:\tools\myapp.exe程式的系統資料庫項

例:reg add "HKLM\SOFTWARE\ScmClient" /v AgreementConfirmed /t REG_SZ /d 1 /f  // 解決32位xp打開ioa後,彈出的框關不掉問題

例:reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f // 強制添加一條加速關閉應用程式的系統資料庫項

例:reg add "hkcu\software\Unity Technologies\Unity Editor 4.x" /v JdkPath_h4127442381 /t REG_SZ /f // 将JdkPath_h4127442381設定為空

例:reg add "HKCR\*\shell\WinDbg\command" /t REG_SZ /d "\"D:\Program Files (x86)\windbg\windbg.exe\" -z \"%1\" " /f    // 強制添加windbg打開dump檔案到右鍵菜單的系統資料庫項(不指明/v,鍵值将寫入預設值名中)

例:reg add "HKCR\*\shell\WinHex\command" /t REG_SZ /d "\"D:\software-setup\system\winhex\winhex.exe\"  \"%1\" " /f    // 強制添加winhex到右鍵菜單的系統資料庫項(不指明/v,鍵值将寫入預設值名中)

系統資料庫中%1 %2 %3 %4的含義:

--  %1表示檔案清單,%2表示預設列印機,%3表示驅動器,%4表示端口

例:reg add "hkcu\software\microsoft\windows\currentversion\internet settings" /v AutoConfigURL /t REG_SZ /d "http://txp-01.tencent.com/proxy.pac" /f  // 為IE設定代理:http://txp-01.tencent.com/proxy.pac

例:reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f  // 關閉IE代理伺服器選項

例:reg add "hkcu\software\Sysinternals\Process Monitor" /v EulaAccepted /t REG_DWORD /d 1 /f  // 為Procmon.exe工具(Process Monitor為其屬性面闆上的描述名)添加License同意

例:reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /f  // 強制删除值名的MyApp的系統資料庫項

例:reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f  // 強制删除讓工作列裡的任務管理器為灰色的系統資料庫項

例:reg delete HKEY_CURRENT_USER\Environment /v HTTP_proxy /f  // 删除http代理

例:reg delete HKEY_CURRENT_USER\Environment /v HTTPS_proxy /f  // 删除https代理

例:reg copy "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winminebk" /s /f  // 強制複制winmine下所有的子項與值到winminebk中

例:reg export "hkcu\software\microsoft\winmine" c:\regbak\winmine.reg  // 導出winmine下所有的子項與值到c:\regbak\winmine.reg檔案中

例:reg import c:\regbak\winmine.reg  // 導入c:\regbak\winmine.reg檔案到系統資料庫中

例:reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /s   // 查詢ie的安裝路徑

例:reg query HKCR\.dsw /ve  // 查詢.dsw預設值

例:reg query HKEY_CURRENT_USER\Software\Tencent\QQGame\SYS /v GameDirectory  // 查詢QQGame安裝路徑

5. @#@

&  順序執行多條指令,而不管指令是否執行成功

例:cd /d d:\src&work.exe /o c:\result.txt  // 先将目前工作目錄切換到d:\src下,然後執行work.exe /o c:\result.txt指令

&&  順序執行多條指令,當碰到執行出錯的指令後将不執行後面的指令

例:find "ok" c:\test.txt && echo 成功 // 如果找到了"ok"字樣,就顯示"成功",找不到就不顯示

||   順序執行多條指令,當碰到執行正确的指令後将不執行後面的指令

例:find "ok" c:\test.txt || echo 不成功   // 如果找不到"ok"字樣,就顯示"不成功",找到了就不顯示

|    管道指令

例:dir *.* /s/a | find /c ".exe"   // 先執行dir指令,然後對輸出結果(stdout)執行find指令(輸出目前檔案夾及所有子檔案夾裡的.exe檔案的個數)

例:dir *.* /s/a 2>&1 | find /c ".exe"   // 先執行dir指令,然後對輸出結果(stdout)和錯誤資訊(stderr)執行find指令(輸出目前檔案夾及所有子檔案夾裡的.exe檔案的個數)

>  将目前指令輸出以覆寫的方式重定向

例:tasklist > p1.txt   // 将tasklist的輸出結果(stdout)以覆寫的方式重定向到p1.txt檔案中(注:tasklist的輸出結果就不會列印到螢幕上了)

例:tasklist 1> p1.txt  // 等同于:tasklist > p1.txt

例:dir bin 2> p1.txt  // 輸出結果(stdout)列印在螢幕上,錯誤資訊(stderr)以覆寫的方式重定向到p1.txt中(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin > p1.txt 2>&1  // 将錯誤資訊(stderr)重定向到輸出結果(stdout),然後将輸出結果(stdout)以覆寫的方式重定向到p1.txt中(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin 2> p1.txt 1>&2  // 将輸出結果(stdout)重定向到錯誤資訊(stderr),然後将錯誤資訊(stderr)以覆寫的方式重定向到p1.txt中(注:bin目錄不存在時,會輸出錯誤資訊) 注:與上條指令結果一緻

例:tasklist >nul   // 螢幕上不列印tasklist的輸出結果(stdout),錯誤資訊(stderr)仍會列印

例:dir bin 2>nul   // 螢幕上不列印指令的錯誤資訊(stderr),輸出結果(stdout)仍會列印(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin >nul 2>&1   //  将指令的錯誤資訊(stderr)重定向到輸出結果(stdout),然後不列印輸出結果(stdout)【螢幕上錯誤資訊(stderr)和輸出結果(stdout)都不列印】(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin 2>nul 1>&2   //  将指令的輸出結果(stdout)重定向到錯誤資訊(stderr),然後不列印錯誤資訊(stderr)【螢幕上錯誤資訊(stderr)和輸出結果(stdout)都不列印】(注:bin目錄不存在時,會輸出錯誤資訊)

>>  将目前指令輸出以追加的方式重定向

例:tasklist >> p2.txt   // 将tasklist的輸出結果(stdout)以追加的方式重定向到p2.txt檔案中(注:tasklist的輸出結果就不會列印到螢幕上了)

例:tasklist 1>> p2.txt  // 等同于:tasklist >> p2.txt

例:dir bin 2>> p2.txt  // 輸出結果(stdout)列印在螢幕上,錯誤資訊(stderr)以追加的方式重定向到p2.txt中(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin >> p2.txt 2>&1  // 将錯誤資訊(stderr)重定向到輸出結果(stdout),然後将輸出結果(stdout)以追加的方式重定向到p2.txt中(注:bin目錄不存在時,會輸出錯誤資訊)

例:dir bin 2>> p2.txt 1>&2  // 将輸出結果(stdout)重定向到錯誤資訊(stderr),然後将錯誤資訊(stderr)以追加的方式重定向到p2.txt中(注:bin目錄不存在時,會輸出錯誤資訊) 注:與上條指令結果一緻

<    從檔案中獲得輸入資訊,而不是從螢幕上,一般用于date time label等需要等待輸入的指令

例:date <temp.txt  // temp.txt中的内容為2005-05-01

編号 Handle 說明
stdin 鍵盤輸入
1 stdout 在指令提示視窗上列印輸出結果(預設)
2 stderr 在指令提示視窗上列印錯誤資訊(預設)
3-9 undefined 應用程式自己定義和指定

@   指令修飾符  在執行指令前,不列印出該指令的内容

例:@cd /d d:\me   // 執行該指令時,不列印出指令的内容:cd /d d:/me

,    在某些特殊的情況下可以用來代替空格使用

例:dir,c:\   // 相當于:dir c:\

;    當指令相同的時候,可以将不同的目标用;隔離開來但執行效果不變。如執行過程中發生錯誤則隻傳回錯誤報告但程式還是會繼續執行

例:dir c:\;d:\;e:\   // 相當于順序執行:dir c:\    dir d:\     dir e:\

echo.   // 輸出一個"回車換行",空白行

echo off   // 後續所有指令在執行前,不列印出指令的内容

echo on   // 後續所有指令在執行前,列印出指令的内容

echo 123   // 輸出123到終端螢幕

echo "Hello World!!!"   // 輸出Hello World!!!到終端螢幕

echo %errorlevel%   // 每個指令運作結束,可以用這個指令行格式檢視傳回碼;預設值為0,一般指令執行出錯會設errorlevel為1

echo test > p1.txt  // 輸出test的字元串到目前目錄中的p1.txt檔案中(以覆寫的方式)

set  // 顯示目前使用者所有的環境變量

set path // 檢視path的環境變量值(準确的說是檢視以path開頭的環境變量)

set path=    // 清空path變量

set path=d:\execute  // 将path變量設定為d:\execute(注:修改的path隻會影響目前回話,也不會存儲到系統配置中去;目前cmd視窗關閉,新設定的path也就不存在了)

set path=%path%;d:\execute   // 在path變量中添加d:\execute(注:修改的path隻會影響目前回話,也不會存儲到系統配置中去;目前cmd視窗關閉,新設定的path也就不存在了)

path // 顯示目前path變量的值

path ; // 清除所有搜尋路徑設定并訓示cmd.exe隻在目前目錄中搜尋

path d:\xxx;%PATH%  // 将d:\xxx路徑添加到path中

---------------------------------------------------

set p=aa1bb1aa2bb2 // 設定變量p,并指派為aa1bb1aa2bb2

echo %p% // 顯示變量p代表的字元串,即aa1bb1aa2bb2

echo %p:~6% // 顯示變量p中第6個字元以後的所有字元,即aa2bb2

echo %p:~6,3% // 顯示第6個字元以後的3個字元,即aa2

echo %p:~0,3% // 顯示前3個字元,即aa1

echo %p:~-2% // 顯示最後面的2個字元,即b2

echo %p:~0,-2% // 顯示除了最後2個字元以外的其它字元,即aa1bb1aa2b

echo %p:aa=c% // 用c替換變量p中所有的aa,即顯示c1bb1c2bb2

echo %p:aa=% // 将變量p中的所有aa字元串置換為空,即顯示1bb12bb2

echo %p:*bb=c% // 第一個bb及其之前的所有字元被替換為c,即顯示c1aa2bb2

set p=%p:*bb=c% // 設定變量p,指派為 %p:*bb=c% ,即c1aa2bb2

set /a p=39 // 設定p為數值型變量,值為39

set /a p=39/10 // 支援運算符,有小數時用去尾法,39/10=3.9,去尾得3,p=3

set /a p=p/10 // 用 /a 參數時,在 = 後面的變量可以不加%直接引用

set /a p="1&0" // &運算要加引号。其它支援的運算符參見set/?

---------------------------------------------------

cls  清除螢幕

ver  顯示目前windows系統的版本号

winver  彈框顯示目前windows系統資訊

whoami  顯示目前使用者的名稱

hostname  顯示目前機器名

例:hostname  // ninizhang-pc5

vol  顯示目前分區的卷标

label  顯示目前分區的卷标,同時提示輸入新卷标

label c:system  設定c盤的卷标為system

time  顯示或設定目前時間

例:time /t  // 顯示目前時間

例:time   // 設定新的目前時間(格式:hh:mm:ss),直接回車則表示放棄設定

date  顯示或設定目前日期

例:date /t  // 顯示目前日期

例:date   // 設定新的目前日期(格式:YYYY/MM/DD),直接回車則表示放棄設定

title 正在做指令行測試  // 修改目前cmd視窗的标題欄文字為正在做指令行測試

prompt orz:   // 将指令提示符修改為orz:

print 1.txt  // 使用設定好的列印機來列印1.txt文本檔案

call ff.bat   // 調用執行ff.bat腳本(ff.bat腳本執行完原腳本才會往下執行)

start  運作某程式或指令

例:start /max notepad.exe  // 最大化的方式啟動記事本

例:start /min calc.exe   // 最小化的方式啟動電腦

例:start /min "" d:\Proxifier.exe   // 最小化的方式啟動Proxifier代理工具

例:start  tasklist  // 啟動一個cmd執行個體視窗,并運作tasklist

例:start explorer f:\  // 調用資料總管打開f盤

例:strat iexplore "www.qq.com"  // 啟動ie并打開www.qq.com網址

例:start ff.bat  // 啟動開始執行ff.bat(啟動ff.bat腳本後,原腳本繼續執行,不會等ff.bat腳本執行完)

exit  退出目前cmd視窗執行個體

例:exit 0  // 退出目前cmd視窗執行個體,并将過程退出代碼設定為0(0表示成功,非0表示失敗)

例:exit /B 1  // 退出目前bat腳本,并将ERRORLEVEL系統變量設定為1

pause   暫停批處理程式,并顯示出:請按任意鍵繼續....

color  設定目前cmd視窗背景色和前景色(前景色即為字型的顔色)

例:color  // 恢複到預設設定

例:color 02 // 将背景色設為黑色,将字型設為綠色

--------------------------------------

0 = 黑色 8 = 灰色

1 = 藍色 9 = 淡藍色

2 = 綠色 A = 淡綠色

3 = 淺綠色 B = 淡淺綠色

4 = 紅色 C = 淡紅色

5 = 紫色 D = 淡紫色

6 = 黃色 E = 淡黃色

7 = 白色 F = 亮白色

--------------------------------------

mode con cols=200 lines=60 & color 9f    設定DOS視窗顔色為9f,大小:200行 60列(若螢幕緩沖區大小的寬度w<200或高度h<60,最終DOS的視窗就會為w行,h列)

【windows指令】--cmd常用指令

chcp  檢視指令行環境字元編碼(為一個全局設定)

936 -- GBK(一般情況下為預設編碼)

437 -- 美國英語

65001 -- utf-8

1200 -- utf-16

1201 -- utf-16(Big-Endian)

12000 -- utf-32

12001 -- utf-32(Big-Endian)

注:cmd的屬性視窗,選項标簽頁也可以檢視目前代碼頁

【windows指令】--cmd常用指令

chcp  936  // 設定目前指令行環境編碼為GBK  執行完該指令後還需要将字型設定為點陣字型,才能真正将編碼環境切成utf8

【windows指令】--cmd常用指令

chcp  65001  // 設定目前指令行環境編碼為utf8  執行完該指令後還需要将字型設定為Lucida Console,才能真正将編碼環境切成utf8

【windows指令】--cmd常用指令

在系統資料庫中會寫入這些字段資訊:

【windows指令】--cmd常用指令

systeminfo  檢視目前計算機的綜合資訊

systeminfo | findstr /i "初始安裝日期 系統啟動時間"   隻檢視目前計算機的初始安裝日期和系統啟動時間

wmic 檢視硬體的資訊   -- C:\Windows\System32\wbem\WMIC.exe

例:wmic logicaldisk   // 檢視計算機上各個盤的相關資訊

例:wmic LogicalDisk where "Caption='C:'" get FreeSpace,Size /value   // 擷取C槽的剩餘空間大小與總大小(機關:Byte)

例:wmic os get Caption,InstallDate,OSArchitecture /value  // 擷取目前os的Caption、安裝日期以及系統架構資訊

wmic 檢視程序資訊

例:wmic process where Caption="buyticket.exe" get commandline,ExecutablePath,ProcessId,ThreadCount /value // 檢視名為"buyticket.exe"所有程序指令行,exe全路徑,PID及線程數

例:wmic process where Caption="buyticket.exe" get ExecutablePath,HandleCount /value   // 檢視名為"buyticket.exe"所有程序的exe全路徑及目前打開的句柄數

例:wmic process where Caption="buyticket.exe" get ExecutablePath,VirtualSize,WorkingSetSize /value   // 檢視名為"buyticket.exe"所有程序的exe全路徑、目前虛拟位址空間占用及實體記憶體工作集

logoff  登出目前使用者

shutdown  關閉、重新開機、登出、休眠計算機

例:shutdown /s  // 關閉計算機

例:shutdown /s /t 3600  // 一小時後,關閉本地計算機

例:shutdown /a  // 終止系統關閉

例:shutdown /r  // 關閉并重新開機本地計算機

例:shutdown /m 192.168.1.166 /r  // 關閉并重新開機ip為192.168.1.166的計算機

+++++++++++++++++++++

遠端關機權限的擷取:

1)修改遠端pc的“本地安全政策”,為指定的使用者開放權限

在WindowsXP預設的安全政策中,隻有Administrators組的使用者才有權從遠端關閉計算機,如果要給xxxx使用者遠端關機的權限。

可利用WindowsXP的“組政策”或“管理工具”中的“本地安全政策”來實作。

1.指令行運作gpedit.msc打開“組政策編輯器“;

2.導航到“計算機配置/Windows設定/安全設定/本地政策/使用者權利指派”;

3.修改“從遠端系統強制關機”,添加xxxx使用者即可。

2)獲得遠端IPC管理權限

如果配置第一步後還出現“拒絕通路。”,則需要在運作shutdown指令前先運作如下指令

net use \\[ip位址或計算機名]\ipc$ password /user:xxxx

其中password為帳号xxxx的登入密碼。

+++++++++++++++++++++

例:shutdown /g  // 關閉并重新開機計算機,重新開機後重新啟動所有注冊的應用程式

例:shutdown /l  // 登出本地計算機

例:shutdown /h /f // 休眠本地計算機(強制正在運作的應用程式關閉,不前台警告使用者)

例:shutdown /s  // 關閉計算機

regsvr32  注冊或反注冊com元件

例:regsvr32 /s clock.ocx  // 以無聲的方式注冊clock.ocx元件

例:regsvr32 /u myCommon.dll  // 解除安裝myCommon.dll元件

format  格式化磁盤

例:format J: /FS:ntfs   // 以ntfs類型格式化J盤 【類型有:FAT、FAT32、exFAT、NTFS或UDF】

例:format J: /FS:fat32 /Q  //  以fat32類型快速格式化J盤

chkdsk /f D:   // 檢查磁盤D并顯示狀态報告;加參數/f表示同時會修複磁盤上的錯誤

subst   磁盤映射  -- 磁盤映射資訊都儲存在系統資料庫以下鍵值中:HKEY_CURRENT_USER\Network

例:subst  // 顯示目前所有的映射

例:subst z: \\com\software  // 将\\com\software共享映射為本地z盤

例:subst y: e:\src  // 将e:\src映射為本地y盤

例:subst z: /d  // 删除z盤映射

cmdkey   憑據Credential(儲存的使用者名和密碼)

例:cmdkey /list  // 列出可用的憑據

例:cmdkey /list:10.12.190.82  // 列出指定目标的憑據

例:cmdkey /list:Domain:target=10.12.190.82  // 列出指定目标的憑據

例:cmdkey /add:Domain:target=10.12.190.82 /user:LiLei /pass:123456  // 若target為10.12.190.82的憑據不存在,則添加;否則就将10.12.190.82憑據的使用者名修改為LiLei,密碼修改為123456

例:cmdkey /delete:Domain:target=10.12.190.82  // 删除指定目标的憑據

cscript  執行vbs腳本

例:cscript /Nologo mac.vbs  // 執行mac.vbs腳本,顯示本機mac位址

-------mac.vbs----------

Dim mc,mo

Set mc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")

For Each mo In mc

If mo.IPEnabled=True Then

MsgBox "本機網卡MAC位址是: " & mo.MacAddress

Exit For

End If

Next

--------------------------

powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)   關閉顯示器

注:Windows API    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)    HWND_BROADCAST為-1,WM_SYSCOMMAND為0x0112,SC_MONITORPOWER為0xF170

powercfg  設定電源方案

例:powercfg -list   // 列出目前使用者環境中的所有電源方案的GUID以及目前使用的是哪一個電源方案

例:powercfg -query 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  // 查詢GUID為8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c的電源方案的詳細内容

例:powercfg -h off  // 設定禁止休眠

// 設定硬碟從不關閉

powercfg -change -disk-timeout-dc 0

powercfg -change -disk-timeout-ac 0

// 設定顯示器從不關閉

powercfg -change -monitor-timeout-dc 0

powercfg -change -monitor-timeout-ac 0

// 設定從不進入待機

powercfg -change -standby-timeout-dc 0

powercfg -change -standby-timeout-ac 0

// 設定從不進入休眠

powercfg -change -hibernate-timeout-dc 0

powercfg -change -hibernate-timeout-ac 0

注1:dc代表直流電源 即使用電池供電;ac代表交流電源 即直接連接配接電源

注2:後面數字為時間,機關為分鐘;設定為0表示從不

netsh advfirewall  設定防火牆

windows防火牆規則順序:阻止規則的優先級高于允許規則

例:netsh advfirewall export "d:\test\advfirewall.pol"  // 将防火牆目前的所有配置導出到d:\test\advfirewall.pol檔案

例:netsh advfirewall import "d:\test\advfirewall.pol"  // 将d:\test\advfirewall.pol檔案中規則導入到防火牆中

例:netsh advfirewall reset  // 将防火牆還原為預設政策

例:netsh advfirewall set allprofiles state off  // 關閉所有類型網絡的防火牆(域網絡【Domain】、家庭或工作的專用網絡【Private】、公用網絡都關閉【Public】)

例:netsh advfirewall set allprofiles state on  // 開啟所有類型網絡的防火牆

例:netsh advfirewall set currentprofile state off  // 關閉目前類型網絡的防火牆

例:netsh advfirewall set currentprofile state on // 開啟目前類型網絡的防火牆

例:netsh advfirewall set domainprofile state on  // 開啟域網絡的防火牆

例:netsh advfirewall set domainprofile state off  // 關閉域網絡的防火牆

例:netsh advfirewall set privateprofile state on  // 開啟家庭或工作的專用網絡的防火牆

例:netsh advfirewall set privateprofile state off   // 關閉家庭或工作的專用網絡的防火牆

例:netsh advfirewall set publicprofile state on  // 開啟公用網絡的防火牆

例:netsh advfirewall set publicprofile state off   // 關閉公用網絡的防火牆

例:netsh advfirewall firewall show rule name=all   // 顯示所有規則

例:netsh advfirewall firewall show rule name=foxmail   // 顯示名為foxmail的所有規則

例:netsh advfirewall firewall set rule name="檔案和列印機共享(回應要求 - ICMPv4-In)" new enable=yes  // 開啟ping回顯

例:netsh advfirewall firewall delete rule name=NiZhanBrowser  // 删除所有名為NiZhanBrowser的規則

例:netsh advfirewall firewall delete rule name=NiZhanBrowser dir=in  // 删除所有名為NiZhanBrowser的入站規則

例:netsh advfirewall firewall delete rule name=NiZhanBrowser action=block  // 删除所有名為NiZhanBrowser且操作為阻止的規則

例:netsh advfirewall firewall add rule name=TCP-In-8888 protocol=TCP localport=8888 dir=in action=allow  // 添加名為TCP-In-8888入站規則:允許TCP端口8888

例:netsh advfirewall firewall add rule name=TCP-In-8888 protocol=TCP localport=8888 dir=in action=block  // 添加名為TCP-In-8888入站規則:阻止TCP端口8888

例:netsh advfirewall firewall add rule name=TCP-In-8888 protocol=TCP localport=8888 dir=out action=allow  // 添加名為TCP-In-8888出站規則:允許TCP端口8888

例:netsh advfirewall firewall add rule name=TCP-In-8888 protocol=TCP localport=8888 dir=out action=block  // 添加名為TCP-In-8888出站規則:阻止TCP端口8888

// 添加名為test1入站規則:允許TCP端口8888、遠端IP位址在10.96.208.0/23,10.96.154.0/23區間、遠端Port在1024-2048,2050-65535

例:netsh advfirewall firewall add rule name=test1 protocol=TCP localport=8888 remoteip=10.96.208.0/23,10.96.154.0/23 remoteport=1024-2048,2050-65535 dir=in action=allow 

// 添加名為test2入站規則:允許TCP端口8888、本地IP位址在10.46.50.32、本地Port在3702

例:netsh advfirewall firewall add rule name=test2 protocol=TCP localport=8888 localip=10.46.50.32 localport=3702 dir=in action=allow 

// 添加名為test3入站規則:允許TCP端口8888、程式路徑為:D:\tools\test3.exe

例:netsh advfirewall firewall add rule name=test2 protocol=TCP localport=8888 program="D:\tools\test3.exe" dir=in action=allow 

注:netsh advfirewall firewall add rule ?  // 可用來檢視幫助資訊

【windows指令】--cmd常用指令

netsh winsock reset   // 重置socket

netsh winhttp show proxy  // 顯示目前系統的WinHttp的代理伺服器設定

netsh winhttp set proxy web-proxy.tencent.com:8080  // 将目前系統的WinHttp的代理伺服器設定為:web-proxy.tencent.com:8080  注:設定完後需要禁用啟用一下網卡

netsh winhttp reset proxy  // 取消目前系統的WinHttp的代理伺服器設定,即:變成無代理的DIRECT模式

netsh winhttp import proxy source=ie  // 使用 import proxy 指令導入 Internet Explorer 使用的代理資訊

netsh interface set interface 本地連接配接 disabled  // 禁用名為本地連接配接的網卡

netsh interface set interface 無線網絡連接配接 enabled  // 啟用名為無線網絡連接配接的網卡 

schtasks  任務計劃

例:schtasks /query /fo LIST /v  // 以較為詳細易于閱讀的格式顯示本機所有任務計劃資訊

例:schtasks /create /sc minute /mo 20 /tn "Soda Build" /tr d:\check.vbs  // 建立一個名為Soda Build的任務計劃:該任務計劃每20分鐘執行一下d:\check.vbs腳本

例:schtasks /create /tn "Soda Build" /tr D:\updateall.bat /sc daily /st 02:06 /f  // 強制建立一個名為Soda Build的任務計劃(不進行确認):該任務計劃每天淩晨2點06分執行一下D:\updateall.bat腳本

例:schtasks /delete /tn "Soda Build" /f  // 強制删除Soda Build名稱的任務計劃(不進行确認)

例:schtasks /change /tn "Soda Build" /tr d:\check2.vbs  // 将名為Soda Build的任務計劃的執行腳本修改為d:\check2.vbs

例:schtasks /run /tn "Soda Build" // 執行名為Soda Build的任務計劃

例:schtasks /end /tn "Soda Build" // 終止執行名為Soda Build的任務計劃

6. net指令

net start  // 檢視已經啟動的服務

net start "Task Scheduler"   // 開啟任務計劃服務

net stop "Task Scheduler" /y  // 不詢問,直接關閉任務計劃服務

net start dnscache  // 開啟dns緩存服務

net stop dnscache /y  // 不詢問,直接關閉dns緩存服務

net start TermService  // 開啟Remote Desktop Services服務

net stop TermService /y  // 不詢問,直接關閉Remote Desktop Services服務

net share   // 檢視目前使用者下的共享目錄

net share workFile /delete  // 取消名為workFile的共享狀态

net share xxx=c:\360Downloads   // 将c:\360Downloads設為共享,并取名為xxx

net share ipc$ // 開啟ipc$共享

net share ipc$ /del // 删除ipc$共享

net share c$ /del // 删除c盤共享

net use \\192.168.1.166\ipc$ " " /user:" " // 建立192.168.1.166的ipc空連結

net use \\192.168.1.166\ipc$ "123456" /user:"administrator"   // 直接登陸後建立192.168.1.166的ipc非空連結(使用者名為administrator 密碼為123456)

net use h: \\192.168.1.166\c$ "123456" /user:"administrator"   // 直接登陸後映射192.168.1.166的c盤到本地為h盤(使用者名為administrator 密碼為123456)

net use h: \\192.168.1.166\c$   // 登陸後映射192.168.1.166的c盤到本地為h盤

net use \\192.168.1.166\ipc$ /del  // 删除ipc連結

net use h: /del // 删除本地的h盤的映射

net view   // 檢視本地區域網路内開啟了哪些共享

net view \\192.168.1.166  // 檢視192.168.1.166的機器上在區域網路内開啟了哪些共享

net time \\127.0.0.1   // 檢視本地機器的日期及時間

net time \\localhost   // 檢視本地機器的日期及時間

net time \\192.168.1.166   // 檢視192.168.1.166機器的日期及時間

net time \\192.168.1.166 /set  // 設定本地計算機時間與192.168.1.166主機的時間同步,加上參數/yes可取消确認資訊

net user  // 檢視目前機器上的使用者

net user Administrator   // 檢視目前機器上的Administrator使用者的資訊

net user Guest /active:yes  // 啟用Guest使用者

net user dev 123456 /add   // 建立一個名為dev,密碼為123456的使用者

net localgroup administrators dev /add  // 把名為dev的使用者添加到管理者使用者組中,使其具有管理者權限

net user dev /del  // 删除名為dev的使用者

7. 程序操作

tasklist  // 顯示目前運作的程序資訊(可檢視PID)

taskkill  結束指定的程序

例:taskkill /im notepad.exe  // 結束名為notepad.exe的程序

例:taskkill /pid 1230 /pid 1241 /pid 1253 /t // 結束pid為1230、1241和1253的程序以及由它們啟動起來的子程序

例:taskkill /f /im cmd.exe /t   // 強制結束有名為cmd.exe的程序以及由它啟動起來的子程序

8. 網絡操作

ping  // 用于檢測網絡是否通暢,以及網絡時延情況(工作在ICMP協定上)

例:ping baidu.com   //  測試與baidu伺服器的連接配接情況

例:ping chen-pc0   // 測試機器名為chen-pc0的連接配接情況

例:ping 220.181.111.86   // 測試與ip為220.181.111.86的連接配接情況

例:ping -l 65500 -n 10 qq.com   // 向qq.com發送10次65500位元組的ping

例:ping -n 6 127.0.0.1 // 對目前主機執行6次ping操作(花費時間為5s)

例:ping -t baidu.com   // 不斷地測試baidu伺服器的連接配接情況   【Ctrl+Pause Break:檢視ping的統計資訊;Ctrl+C:終止目前任務】

a. 首先查本地arp cache資訊,看是否有對方的mac位址和IP位址映射條目記錄

b. 如果沒有,則發起一個arp請求廣播包,等待對方告知具體的mac位址

c. 收到arp響應包之後,獲得某個IP對應的具體mac位址,有了實體位址之後才可以開始通信了,同時對ip-mac位址做一個本地cache

d. 發出icmp echo request包,收到icmp echo reply包

注:如果在同一網段但ping不通目标主機,可能是目标主機禁用了ping,可在防火牆進階設定中打開 “入站規則” -- “檔案和列印機共享(回應要求 - ICMPv4-In)”

【windows指令】--cmd常用指令
【windows指令】--cmd常用指令

ipconfig /all  // 檢視本地ip位址等詳細資訊

ipconfig /displaydns  // 顯示本地dns緩存的内容

ipconfig /flushdns  // 清除本地dns緩存的内容

nslookup www.cnblogs.com  // 擷取www.cnblogs.com的域名解析

伺服器: gm-captiva.tencent.com//DNS伺服器的主機名

Address: 10.6.18.41//DNS伺服器IP

非權威應答:

名稱: www.cnblogs.com//解析的域名URL

Address: 42.121.252.58//解析回的IP

nslookup -d www.cnblogs.com  // 列印出www.cnblogs.com的域名解析所有記錄

netstat -a   // 檢視開啟了哪些端口

netstat -ao // 檢視開啟了哪些端口,并顯示程序pid

netstat -n  // 檢視端口的網絡連接配接情況

netstat -v   // 檢視正在進行的工作

netstat -p tcp  // 檢視tcp協定的使用情況

tracert 182.140.167.44  // 檢視本機到達182.140.167.44的路由路徑

route print  // 顯示出IP路由

telnet 182.140.167.44 8000   // 探測182.140.167.44是否使用TCP協定監聽8000端口(注意:telnet指令不支援UDP端口檢測)

說明:如果端口關閉或者無法連接配接,則顯示不能打開到主機的連結,連結失敗;端口打開的情況下,連結成功,則進入telnet頁面(全黑的),證明端口可用。

用于探測指定IP的端口号,隻是telnet的一個基本功能;

遠端登入到網絡中的計算機,并以指令行的方式遠端管理計算機才是telnet指令的強大之處。

windows telnet伺服器(預設端口:23)環境配置過程如下: 參考1

a. 安裝telnet伺服器

【windows指令】--cmd常用指令

b. 啟動Telnet服務

【windows指令】--cmd常用指令

c. 關閉windows防火牆    注:若不想關閉防火牆,則需要在Windows防火牆 -- 進階設定裡面對Telnet伺服器的通路規則進行配置

【windows指令】--cmd常用指令
【windows指令】--cmd常用指令

ftp 46.19.34.198 21  // 連接配接46.19.34.198 ftp伺服器(21為端口号),然後會要求輸入使用者名與密碼;連接配接成功後,具體如何使用可以鍵入?來檢視幫助說明

arp   顯示和修改位址解析協定(ARP)使用的“IP到mac”的位址轉換表

例:arp -a  // 顯示arp緩存表

at  計劃任務(必須保證“Task Scheduler”服務啟動   net start "task scheduler")

例:at  // 檢視所有的計劃任務

例:at /delete /yes  // 停止所有任務計劃(不需要确認)

例:at 1  // 開啟id為1的計劃任務

例:at 1 /delete /yes  // 停止id為1的計劃任務(不需要确認)

例:at 12:42 shutdown –s –t30   // 到12:42 ,電腦會出現“ 系統關機 ”對話框,并預設 30 秒延時自動關機

例:at cmd /c dir > c:\test.out   // 如果指令不是exe檔案,必須在指令前加上cmd /c

例:at 6:00AM /every:Saturday task.bat   // 在每周六早上6點,電腦定時啟動task.bat批處理檔案

例:at \\chen 12:00 shutdown /r   // 到12:00時,關閉名為chen的計算機

例:at \\192.168.1.166 12:00 shutdown /r   // 到12:00時,關閉ip為192.168.1.166的計算機

9. 文本處理 

edit config.ini  // 編輯config.ini檔案(會進入edit字元編輯器;按alt,可以選擇對應的菜單) win7 x64下沒有該指令

find  檔案中搜尋字元串

例:find /N /I "pid" 1.txt  // 在1.txt檔案中忽略大小寫查找pid字元串,并帶行号顯示查找後的結果

例:find /C "exe" 1.txt  // 隻顯示在1.txt檔案中查找到exe字元串的次數

例:find /V "exe" 1.txt  // 顯示未包含1.txt檔案中未包含exe字元串的行

findstr  檔案中搜尋字元串

例:findstr "hello world" 1.txt  // 在1.txt檔案中搜尋hello或world

例:findstr /c:"hello world" 1.txt  // 在1.txt檔案中搜尋hello world

例:findstr /c:"hello world" 1.txt nul  // 在1.txt檔案中搜尋hello world,并在每行結果前列印出1.txt:   注:findstr隻有在2個及以上檔案中搜尋字元串時才會列印出每個檔案的檔案名,nul表示一個空檔案

例:findstr /s /i "Hello" *.*   // 不區分大小寫,在目前目錄和所有子目錄中的所有檔案中的hello

例:findstr  "^[0-9][a-z]" 1.txt  // 在1.txt中搜尋以1個數字+1個小寫字母開頭子串的行

緻謝:

windows常用指令 - 可可西 - 部落格園 (cnblogs.com)