windows常用命令列指令
開啟"執行"對話方塊(Win+R),輸入cmd,開啟控制檯命令視窗...
也可以通過cmd /c 命令 和 cmd /k 命令的方式來直接執行命令
注:/c表示執行完命令後關閉cmd視窗;/k表示執行完命令後保留cmd視窗
# 控制檯命令視窗中一些技巧
複製內容:右鍵彈出快捷選單,選擇“標記(K)”,然後選中所需複製的內容,然後右鍵即可
貼上內容:右鍵彈出快捷選單,選擇“貼上(P)”
在資料夾空白處按住Shift,然後右鍵彈出快捷選單,可以看到“在此處開啟命令列視窗”
使用上下方向鍵,翻看使用過的命令
tab補齊功能
命令引數的路徑:要使用反斜槓'\',不要使用正斜槓'/' 如:del d:\test2\file\my.txt
命令引數的路徑:若存在空格,應使用雙引號將路徑引起來 如:del "d:\program files\file\my.txt"
檔案及目錄名中不能包含下列任何字元:\ / : * ? " < > |
rem // 在批處理檔案中添加註解,其後的命令不會被執行,但會回顯
:: // ::也可以起到rem的註釋作用,且不會有回顯
任何以冒號:開頭的字元行, 在批處理中都被視作標號(label), 而直接忽略其後的所有內容 有效標號:冒號後緊跟一個以字母數字開頭的字串,goto語句可以識別 無效標號:冒號後緊跟一個非字母數字的一個特殊符號,goto無法識別的標號,可以起到註釋作用,::常被用作註釋符號
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\ /s /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中
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
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 "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\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 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 | 說明 |
0 | 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系統資訊
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 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列)
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 憑據(儲存的使用者名稱和密碼)
例: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 // 新增憑據
例: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
--------------------------
6. net命令
net start // 檢視已經啟動的服務
net start "Task Scheduler" // 開啟任務計劃服務
net stop "Task Scheduler" // 關閉任務計劃服務
net start dnscache // 開啟dns快取服務
net stop dnscache // 關閉dns快取服務
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包
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 -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伺服器
b. 啟動Telnet服務
c. 關閉windows防火牆 注:若不想關閉防火牆,則需要在Windows防火牆 -- 高階設定裡面對Telnet伺服器的訪問規則進行配置
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個小寫字母開頭子串的行