Windows批处理(cmd/bat)常用命令
Windows批處理(cmd/bat)常用命令
一、總結(jié)
一句話總結(jié):
?
1、批量處理圖片的方式?
PS批處理是基于強(qiáng)大的圖片編輯軟件Photoshop的,用來批量處理圖片的腳本;
?
?
2、大量的重復(fù)的操作用什么來做?
批處理
?
?
?
二、Windows批處理(cmd/bat)常用命令
前言
批處理文件(batch file)包含一系列 DOS命令,通常用于自動(dòng)執(zhí)行重復(fù)性任務(wù)。用戶只需雙擊批處理文件便可執(zhí)行任務(wù),而無需重復(fù)輸入相同指令。編寫批處理文件非常簡(jiǎn)單,但難點(diǎn)在于確保一切按順序執(zhí)行。編寫嚴(yán)謹(jǐn)?shù)呐幚砦募梢詷O大程度地節(jié)省時(shí)間,在應(yīng)對(duì)重復(fù)性工作時(shí)尤其有效。
在Windows中善用批處理可以簡(jiǎn)化很多重復(fù)工作
什么是批處理
批處理(Batch),也稱為批處理腳本。顧名思義,批處理就是對(duì)某對(duì)象進(jìn)行批量的處理。批處理文件的擴(kuò)展名為bat。
目前比較常見 的批處理包含兩類:DOS批處理和PS批處理。PS批處理是基于強(qiáng)大的圖片編輯軟件Photoshop的,用來批量處理圖片的腳本;而DOS批處理則是基于DOS命令的,用來自動(dòng)地批量地執(zhí)行DOS命令以實(shí)現(xiàn)特定操作的腳本。這里要講的就是DOS批處理。
批處理是一種簡(jiǎn)化的腳本語言,它應(yīng)用于DOS和Windows系統(tǒng)中,它是由DOS或者Windows系統(tǒng)內(nèi)嵌的命令解釋器(通常是COMMAND.COM或者CMD.EXE)解釋運(yùn)行。類似于Unix中的Shell腳本。批處理文件具有.bat或者.cmd的擴(kuò)展名,其最簡(jiǎn)單的例子,是逐行書寫在命令行中會(huì)用到的各種命令。更復(fù)雜的情況,需要使用if,for,goto等命令控制程序的運(yùn)行過程,如同C,Basic等中高級(jí)語言一樣。如果需要實(shí)現(xiàn)更復(fù)雜的應(yīng)用,利用外部程序是必要的,這包括系統(tǒng)本身提供的外部命令和第三方提供的工具或者軟件。
批處理文件,或稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創(chuàng)建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用Cmd.exe運(yùn)行該批處理程序。一般情況下,每條命令占據(jù)一行;當(dāng)然也可以將多條命令用特定符號(hào)(如:&、&&、|、||等)分隔后寫入同一行中;還有的情況就是像if、for等較高級(jí)的命令則要占據(jù)幾行甚至幾十幾百行的空間。
系統(tǒng)在解釋運(yùn)行批處理程序時(shí),首先掃描整個(gè)批處理程序,然后從第一行代碼開始向下逐句執(zhí)行所有的命令,直至程序結(jié)尾或遇見exit命令或出錯(cuò)意外退出。
批處理命令簡(jiǎn)介
- echo
- rem
- pause
- call
- start
- goto
- set
http://xstarcd.github.io/wiki/windows/windows_cmd_summary_commands.html
批處理符號(hào)簡(jiǎn)介
- 回顯屏蔽 @
- 重定向1 >與>>
- 重定向2 <
- 管道符號(hào) |
- 轉(zhuǎn)義符 ^
- 邏輯命令符包括:&、&&、||
http://xstarcd.github.io/wiki/windows/windows_cmd_summary_symbols.html
常用DOS命令
文件夾管理
- cd 顯示當(dāng)前目錄名或改變當(dāng)前目錄。
- md 創(chuàng)建目錄。
- rd 刪除一個(gè)目錄。
- dir 顯示目錄中的文件和子目錄列表。
- tree 以圖形顯示驅(qū)動(dòng)器或路徑的文件夾結(jié)構(gòu)。
- path 為可執(zhí)行文件顯示或設(shè)置一個(gè)搜索路徑。
- xcopy 復(fù)制文件和目錄樹。
文件管理
- type 顯示文本文件的內(nèi)容。
- copy 將一份或多份文件復(fù)制到另一個(gè)位置。
- del 刪除一個(gè)或數(shù)個(gè)文件。
- move 移動(dòng)文件并重命名文件和目錄。(Windows XP Home Edition中沒有)
- ren 重命名文件。
- replace 替換文件。
- attrib 顯示或更改文件屬性。
- find 搜索字符串。
- fc 比較兩個(gè)文件或兩個(gè)文件集并顯示它們之間的不同
網(wǎng)絡(luò)命令
- ping 進(jìn)行網(wǎng)絡(luò)連接測(cè)試、名稱解析
- ftp 文件傳輸
- net 網(wǎng)絡(luò)命令集及用戶管理
- telnet 遠(yuǎn)程登陸
- ipconfig顯示、修改TCP/IP設(shè)置
- msg 給用戶發(fā)送消息
- arp 顯示、修改局域網(wǎng)的IP地址-物理地址映射列表
系統(tǒng)管理
- at 安排在特定日期和時(shí)間運(yùn)行命令和程序
- shutdown立即或定時(shí)關(guān)機(jī)或重啟
- tskill 結(jié)束進(jìn)程
- taskkill結(jié)束進(jìn)程(比tskill高級(jí),但WinXPHome版中無該命令)
- tasklist顯示進(jìn)程列表(Windows XP Home Edition中沒有)
- sc 系統(tǒng)服務(wù)設(shè)置與控制
- reg 注冊(cè)表控制臺(tái)工具
- powercfg控制系統(tǒng)上的電源設(shè)置
對(duì)于以上列出的所有命令,在cmd中輸入命令+/?即可查看該命令的幫助信息。如find /?
Windows Batch 常用命令
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 | 1 echo 和 @ 回顯命令 @ #關(guān)閉單行回顯 echo off #從下一行開始關(guān)閉回顯 @echo off #從本行開始關(guān)閉回顯。一般批處理第一行都是這個(gè) echo on #從下一行開始打開回顯 echo #顯示當(dāng)前是 echo off 狀態(tài)還是 echo on 狀態(tài) echo. #輸出一個(gè)”回車換行”,空白行 #(同echo, echo; echo+ echo[ echo] echo/ echo)2 errorlevel echo %errorlevel% 每個(gè)命令運(yùn)行結(jié)束,可以用這個(gè)命令行格式查看返回碼 默認(rèn)值為0,一般命令執(zhí)行出錯(cuò)會(huì)設(shè) errorlevel 為13 dir 顯示文件夾內(nèi)容 dir #顯示當(dāng)前目錄中的文件和子目錄 dir /a #顯示當(dāng)前目錄中的文件和子目錄,包括隱藏文件和系統(tǒng)文件 dir c: /a:d #顯示 C 盤當(dāng)前目錄中的目錄 dir c: /a:-d #顯示 C 盤根目錄中的文件 dir c: /b/p #/b只顯示文件名,/p分頁顯示 dir *.exe /s #顯示當(dāng)前目錄和子目錄里所有的.exe文件4 cd 切換目錄 cd #進(jìn)入根目錄 cd #顯示當(dāng)前目錄 cd /d d:sdk #可以同時(shí)更改盤符和目錄5 md 創(chuàng)建目錄 md d:abc #如果 d:a 不存在,將會(huì)自動(dòng)創(chuàng)建中級(jí)目錄 #如果命令擴(kuò)展名被停用,則需要鍵入 mkdir abc。6 rd 刪除目錄 rd abc #刪除當(dāng)前目錄里的 abc 子目錄,要求為空目錄 rd /s/q d:temp #刪除 d:temp 文件夾及其子文件夾和文件,/q安靜模式7 del 刪除文件 del d:test.txt #刪除指定文件,不能是隱藏、系統(tǒng)、只讀文件 del /q/a/f d:temp*.* 刪除 d:temp 文件夾里面的所有文件,包括隱藏、只讀、系統(tǒng)文件,不包括子目錄 del /q/a/f/s d:temp*.* 刪除 d:temp 及子文件夾里面的所有文件,包括隱藏、只讀、系統(tǒng)文件,不包括子目錄8 ren 重命名命令 ren d:temp tmp #支持對(duì)文件夾的重命名9 cls 清屏10 type 顯示文件內(nèi)容 type c:boot.ini #顯示指定文件的內(nèi)容,程序文件一般會(huì)顯示亂碼 type *.txt #顯示當(dāng)前目錄里所有.txt文件的內(nèi)容11 copy 拷貝文件 copy c:test.txt d:test.bak 復(fù)制 c:test.txt 文件到 d: ,并重命名為 test.bak copy con test.txt 從屏幕上等待輸入,按 Ctrl+Z 結(jié)束輸入,輸入內(nèi)容存為test.txt文件 con代表屏幕,prn代表打印機(jī),nul代表空設(shè)備 copy 1.txt + 2.txt 3.txt 合并 1.txt 和 2.txt 的內(nèi)容,保存為 3.txt 文件 如果不指定 3.txt ,則保存到 1.txt copy test.txt + 復(fù)制文件到自己,實(shí)際上是修改了文件日期12 title 設(shè)置cmd窗口的標(biāo)題 title 新標(biāo)題 #可以看到cmd窗口的標(biāo)題欄變了13 ver 顯示系統(tǒng)版本14 label 和 vol 設(shè)置卷標(biāo) vol #顯示卷標(biāo) label #顯示卷標(biāo),同時(shí)提示輸入新卷標(biāo) label c:system #設(shè)置C盤的卷標(biāo)為 system15 pause 暫停命令16 rem 和 :: 注釋命令 注釋行不執(zhí)行操作17 date 和 time 日期和時(shí)間 date #顯示當(dāng)前日期,并提示輸入新日期,按"回車"略過輸入 date/t #只顯示當(dāng)前日期,不提示輸入新日期 time #顯示當(dāng)前時(shí)間,并提示輸入新時(shí)間,按"回車"略過輸入 time/t #只顯示當(dāng)前時(shí)間,不提示輸入新時(shí)間18 goto 和 : 跳轉(zhuǎn)命令 :label #行首為:表示該行是標(biāo)簽行,標(biāo)簽行不執(zhí)行操作 goto label #跳轉(zhuǎn)到指定的標(biāo)簽?zāi)且恍?/span>19 find (外部命令) 查找命令 find "abc" c:test.txt 在 c:test.txt 文件里查找含 abc 字符串的行 如果找不到,將設(shè) errorlevel 返回碼為1 find /i “abc” c:test.txt 查找含 abc 的行,忽略大小寫 find /c "abc" c:test.txt 顯示含 abc 的行的行數(shù)20 more (外部命令) 逐屏顯示 more c:test.txt #逐屏顯示 c:test.txt 的文件內(nèi)容21 tree 顯示目錄結(jié)構(gòu) tree d: #顯示D盤的文件目錄結(jié)構(gòu)22 & 順序執(zhí)行多條命令,而不管命令是否執(zhí)行成功23 && 順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令 find "ok" c:test.txt && echo 成功 如果找到了"ok"字樣,就顯示"成功",找不到就不顯示24 || 順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令 find "ok" c:test.txt || echo 不成功 如果找不到"ok"字樣,就顯示"不成功",找到了就不顯示25 | 管道命令 dir *.* /s/a | find /c ".exe" 管道命令表示先執(zhí)行 dir 命令,對(duì)其輸出的結(jié)果執(zhí)行后面的 find 命令 該命令行結(jié)果:輸出當(dāng)前文件夾及所有子文件夾里的.exe文件的個(gè)數(shù) type c:test.txt|more 這個(gè)和 more c:test.txt 的效果是一樣的26 > 和 >> 輸出重定向命令 > 清除文件中原有的內(nèi)容后再寫入 >> 追加內(nèi)容到文件末尾,而不會(huì)清除原有的內(nèi)容 主要將本來顯示在屏幕上的內(nèi)容輸出到指定文件中 指定文件如果不存在,則自動(dòng)生成該文件 type c:test.txt >prn 屏幕上不顯示文件內(nèi)容,轉(zhuǎn)向輸出到打印機(jī) echo hello world>con 在屏幕上顯示hello world,實(shí)際上所有輸出都是默認(rèn) >con 的 copy c:test.txt f: >nul 拷貝文件,并且不顯示"文件復(fù)制成功"的提示信息,但如果f盤不存在,還是會(huì)顯示出錯(cuò)信息 copy c:test.txt f: >nul 2>nul 不顯示”文件復(fù)制成功”的提示信息,并且f盤不存在的話,也不顯示錯(cuò)誤提示信息 echo ^^W ^> ^W>c:test.txt 生成的文件內(nèi)容為 ^W > W ^ 和 > 是控制命令,要把它們輸出到文件,必須在前面加個(gè) ^ 符號(hào)27 < 從文件中獲得輸入信息,而不是從屏幕上 一般用于 date time label 等需要等待輸入的命令 @echo off echo 2005-05-01>temp.txt date <temp.txt del temp.txt 這樣就可以不等待輸入直接修改當(dāng)前日期28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* 命令行傳遞給批處理的參數(shù) %0 批處理文件本身 %1 第一個(gè)參數(shù) %9 第九個(gè)參數(shù) %* 從第一個(gè)參數(shù)開始的所有參數(shù)批參數(shù)(%n)的替代已被增強(qiáng)。您可以使用以下語法: %~1 - 刪除引號(hào)("),擴(kuò)充 %1 %~f1 - 將 %1 擴(kuò)充到一個(gè)完全合格的路徑名 %~d1 - 僅將 %1 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào) %~p1 - 僅將 %1 擴(kuò)充到一個(gè)路徑 %~n1 - 僅將 %1 擴(kuò)充到一個(gè)文件名 %~x1 - 僅將 %1 擴(kuò)充到一個(gè)文件擴(kuò)展名 %~s1 - 擴(kuò)充的路徑指含有短名 %~a1 - 將 %1 擴(kuò)充到文件屬性 %~t1 - 將 %1 擴(kuò)充到文件的日期/時(shí)間 %~z1 - 將 %1 擴(kuò)充到文件的大小 %~$PATH : 1 - 查找列在 PATH 環(huán)境變量的目錄,并將 %1 擴(kuò)充到找到的第一個(gè)完全合格的名稱。如果環(huán)境 變量名未被定義,或者沒有找到文件,此組合鍵會(huì) 擴(kuò)充到空字符串可以組合修定符來取得多重結(jié)果: %~dp1 - 只將 %1 擴(kuò)展到驅(qū)動(dòng)器號(hào)和路徑 %~nx1 - 只將 %1 擴(kuò)展到文件名和擴(kuò)展名 %~dp$PATH:1 - 在列在 PATH 環(huán)境變量中的目錄里查找 %1, 并擴(kuò)展到找到的第一個(gè)文件的驅(qū)動(dòng)器號(hào)和路徑。 %~ftza1 - 將 %1 擴(kuò)展到類似 DIR 的輸出行。 可以參照 call/? 或 for/? 看出每個(gè)參數(shù)的含意 echo load "%%1" "%%2">c:test.txt 生成的文件內(nèi)容為 load "%1" "%2" 批處理文件里,用這個(gè)格式把命令行參數(shù)輸出到文件29 if 判斷命令 if "%1"=="/a" echo 第一個(gè)參數(shù)是/a if /i "%1" equ "/a" echo 第一個(gè)參數(shù)是/a /i 表示不區(qū)分大小寫,equ 和 == 是一樣的,其它運(yùn)算符參見 if/? if exist c:test.bat echo 存在c:test.bat文件 if not exist c:windows ( echo 不存在c:windows文件夾 ) if exist c:test.bat ( echo 存在c:test.bat ) else ( echo 不存在c:test.bat )30 setlocal 和 endlocal 設(shè)置”命令擴(kuò)展名”和”延緩環(huán)境變量擴(kuò)充” SETLOCAL ENABLEEXTENSIONS #啟用"命令擴(kuò)展名" SETLOCAL DISABLEEXTENSIONS #停用"命令擴(kuò)展名" SETLOCAL ENABLEDELAYEDEXPANSION #啟用"延緩環(huán)境變量擴(kuò)充" SETLOCAL DISABLEDELAYEDEXPANSION #停用"延緩環(huán)境變量擴(kuò)充" ENDLOCAL #恢復(fù)到使用SETLOCAL語句以前的狀態(tài) “命令擴(kuò)展名”默認(rèn)為啟用 “延緩環(huán)境變量擴(kuò)充”默認(rèn)為停用 批處理結(jié)束系統(tǒng)會(huì)自動(dòng)恢復(fù)默認(rèn)值 可以修改注冊(cè)表以禁用"命令擴(kuò)展名",詳見 cmd /? 。所以用到"命令擴(kuò)展名"的程 序,建議在開頭和結(jié)尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 語句,以確 保程序能在其它系統(tǒng)上正確運(yùn)行 "延緩環(huán)境變量擴(kuò)充"主要用于 if 和 for 的符合語句,在 set 的說明里有其實(shí)用例程31 set 設(shè)置變量 引用變量可在變量名前后加 % ,即 %變量名% set #顯示目前所有可用的變量,包括系統(tǒng)變量和自定義的變量 echo %SystemDrive% #顯示系統(tǒng)盤盤符。系統(tǒng)變量可以直接引用 set p #顯示所有以p開頭的變量,要是一個(gè)也沒有就設(shè)errorlevel=1 set p=aa1bb1aa2bb2 #設(shè)置變量p,并賦值為 = 后面的字符串,即aa1bb1aa2bb2 echo %p% #顯示變量p代表的字符串,即aa1bb1aa2bb2 echo %p:~6% #顯示變量p中第6個(gè)字符以后的所有字符,即aa2bb2 echo %p:~6,3% #顯示第6個(gè)字符以后的3個(gè)字符,即aa2 echo %p:~0,3% #顯示前3個(gè)字符,即aa1 echo %p:~-2% #顯示最后面的2個(gè)字符,即b2 echo %p:~0,-2% #顯示除了最后2個(gè)字符以外的其它字符,即aa1bb1aa2b echo %p:aa=c% #用c替換變量p中所有的aa,即顯示c1bb1c2bb2 echo %p:aa=% #將變量p中的所有aa字符串置換為空,即顯示1bb12bb2 echo %p:*bb=c% #第一個(gè)bb及其之前的所有字符被替換為c,即顯示c1aa2bb2 set p=%p:*bb=c% #設(shè)置變量p,賦值為 %p:*bb=c% ,即c1aa2bb2 set /a p=39 #設(shè)置p為數(shù)值型變量,值為39 set /a p=39/10 #支持運(yùn)算符,有小數(shù)時(shí)用去尾法,39/10=3.9,去尾得3,p=3 set /a p=p/10 #用 /a 參數(shù)時(shí),在 = 后面的變量可以不加%直接引用 set /a p=”1&0″ #”與”運(yùn)算,要加引號(hào)。其它支持的運(yùn)算符參見set/? set p= #取消p變量 set /p p=請(qǐng)輸入 屏幕上顯示”請(qǐng)輸入”,并會(huì)將輸入的字符串賦值給變量p 注意這條可以用來取代 choice 命令 注意變量在 if 和 for 的復(fù)合語句里是一次性全部替換的,如 @echo off set p=aaa if %p%==aaa ( echo %p% set p=bbb echo %p% ) 結(jié)果將顯示 aaa aaa 因?yàn)樵谧x取 if 語句時(shí)已經(jīng)將所有 %p% 替換為aaa 這里的"替換",在 /? 幫助里就是指"擴(kuò)充"、"環(huán)境變量擴(kuò)充" 可以啟用”延緩環(huán)境變量擴(kuò)充”,用 ! 來引用變量,即 !變量名! @echo off SETLOCAL ENABLEDELAYEDEXPANSION set p=aaa if %p%==aaa ( echo %p% set p=bbb echo !p! ) ENDLOCAL 結(jié)果將顯示 aaa bbb 還有幾個(gè)動(dòng)態(tài)變量,運(yùn)行 set 看不到 %CD% #代表當(dāng)前目錄的字符串 %DATE% #當(dāng)前日期 %TIME% #當(dāng)前時(shí)間 %RANDOM% #隨機(jī)整數(shù),介于0~32767 %ERRORLEVEL% #當(dāng)前 ERRORLEVEL 值 %CMDEXTVERSION% #當(dāng)前命令處理器擴(kuò)展名版本號(hào) %CMDCMDLINE% #調(diào)用命令處理器的原始命令行 可以用echo命令查看每個(gè)變量值,如 echo %time% 注意 %time% 精確到毫秒,在批處理需要延時(shí)處理時(shí)可以用到32 start 批處理中調(diào)用外部程序的命令,否則等外部程序完成后才繼續(xù)執(zhí)行剩下的指令33 call 批處理中調(diào)用另外一個(gè)批處理的命令,否則剩下的批處理指令將不會(huì)被執(zhí)行 有時(shí)有的應(yīng)用程序用start調(diào)用出錯(cuò)的,也可以call調(diào)用34 choice (外部命令) 選擇命令 讓用戶輸入一個(gè)字符,從而選擇運(yùn)行不同的命令,返回碼errorlevel為1234…… win98里是choice.com win2000pro里沒有,可以從win98里拷過來 win2003里是choice.exe choice /N /C y /T 5 /D y>nul 延時(shí)5秒35 assoc 和 ftype 文件關(guān)聯(lián) assoc 設(shè)置'文件擴(kuò)展名'關(guān)聯(lián),關(guān)聯(lián)到'文件類型' ftype 設(shè)置'文件類型'關(guān)聯(lián),關(guān)聯(lián)到'執(zhí)行程序和參數(shù)' 當(dāng)你雙擊一個(gè).txt文件時(shí),windows并不是根據(jù).txt直接判斷用 notepad.exe 打開 而是先判斷.txt屬于 txtfile '文件類型' 再調(diào)用 txtfile 關(guān)聯(lián)的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1 可以在"文件夾選項(xiàng)"→"文件類型"里修改這2種關(guān)聯(lián) assoc #顯示所有'文件擴(kuò)展名'關(guān)聯(lián) assoc .txt #顯示.txt代表的'文件類型',結(jié)果顯示 .txt=txtfile assoc .doc #顯示.doc代表的'文件類型',結(jié)果顯示 .doc=Word.Document.8 assoc .exe #顯示.exe代表的'文件類型',結(jié)果顯示 .exe=exefile ftype #顯示所有'文件類型'關(guān)聯(lián) ftype exefile #顯示exefile類型關(guān)聯(lián)的命令行,結(jié)果顯示 exefile="%1" %* assoc .txt=Word.Document.8 設(shè)置.txt為word類型的文檔,可以看到.txt文件的圖標(biāo)都變了 assoc .txt=txtfile 恢復(fù).txt的正確關(guān)聯(lián) ftype exefile="%1" %* 恢復(fù) exefile 的正確關(guān)聯(lián) 如果該關(guān)聯(lián)已經(jīng)被破壞,可以運(yùn)行 command.com ,再輸入這條命令36 pushd 和 popd 切換當(dāng)前目錄 @echo off c: & cd & md mp3 #在 C: 建立 mp3 文件夾 md d:mp4 #在 D: 建立 mp4 文件夾 cd /d d:mp4 #更改當(dāng)前目錄為 d:mp4 pushd c:mp3 #保存當(dāng)前目錄,并切換當(dāng)前目錄為 c:mp3 popd #恢復(fù)當(dāng)前目錄為剛才保存的 d:mp437 for 循環(huán)命令 這個(gè)比較復(fù)雜,請(qǐng)對(duì)照 for/? 來看 for %%i in (c: d: e: f:) do echo %%i 依次調(diào)用小括號(hào)里的每個(gè)字符串,執(zhí)行 do 后面的命令 注意%%i,在批處理中 for 語句調(diào)用參數(shù)用2個(gè)% 默認(rèn)的字符串分隔符是"空格鍵","Tab鍵","回車鍵" for %%i in (*.txt) do find "abc" %%i 對(duì)當(dāng)前目錄里所有的txt文件執(zhí)行 find 命令 for /r . %%i in (*.txt) do find "abc" %%i 在當(dāng)前目錄和子目錄里所有的.txt文件中搜索包含 abc 字符串的行 for /r . %%i in (.) do echo %%~pni 顯示當(dāng)前目錄名和所有子目錄名,包括路徑,不包括盤符 for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt 把 d:mp3 及其子目錄里的mp3文件的文件名都存到 d:mp3.txt 里去 for /l %%i in (2,1,8) do echo %%i 生成2345678的一串?dāng)?shù)字,2是數(shù)字序列的開頭,8是結(jié)尾,1表示每次加1 for /f %%i in ('set') do echo %%i 對(duì) set 命令的輸出結(jié)果循環(huán)調(diào)用,每行一個(gè) for /f "eol=P" %%i in ('set') do echo %%i 取 set 命令的輸出結(jié)果,忽略以 P 開頭的那幾行 for /f %%i in (d:mp3.txt) do echo %%i 顯示 d:mp3.txt 里的每個(gè)文件名,每行一個(gè),不支持帶空格的名稱 for /f "delims=" %%i in (d:mp3.txt) do echo %%i 顯示 d:mp3.txt 里的每個(gè)文件名,每行一個(gè),支持帶空格的名稱 for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a 對(duì) dir 命令的結(jié)果,跳過前面5行,余下的每行取第4列 每列之間的分隔符為默認(rèn)的"空格" 可以注意到 dir 命令輸出的前5行是沒有文件名的 for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do ( echo %%a echo %%b echo %%c ) 對(duì) date /t 的輸出結(jié)果,每行取1、2、3列 第一列對(duì)應(yīng)指定的 %%a ,后面的 %%b 和 %%c 是派生出來的,對(duì)應(yīng)其它列 分隔符指定為 - 和"空格",注意 delims=- 后面有個(gè)"空格" 其中 tokens=1,2,3 若用 tokens=1-3 替換,效果是一樣的 for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b 取第2列給 %%a ,其后的列都給 %%b38 subst (外部命令) 映射磁盤。 subst z: serverd #這樣輸入z:就可以訪問serverd了 subst z: /d #取消該映射 subst #顯示目前所有的映時(shí)39 xcopy (外部命令) 文件拷貝 xcopy d:mp3 e:mp3 /s/e/i/y 復(fù)制 d:mp3 文件夾、所有子文件夾和文件到 e: ,覆蓋已有文件 加 /i 表示如果 e: 沒有 mp3 文件夾就自動(dòng)新建一個(gè),否則會(huì)有詢問 |
?
?
?
PS批處理是基于強(qiáng)大的圖片編輯軟件Photoshop的,用來批量處理圖片的腳本;
總結(jié)
以上是生活随笔為你收集整理的Windows批处理(cmd/bat)常用命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 码农很多,但程序员并不多......
- 下一篇: 基于Python Tornado的在线问