windows中bat指令碼編寫
阿新 • • 發佈:2019-02-16
#前言
大家都知道python的便利,但是如果這臺計算機沒有裝python環境怎麼辦,這時為了做一些重複性的工作,就不得不用cmd來編寫一些簡單的指令碼。
希望對大家有點幫助,文末有一些實用的指令碼
###基本命令
可以使用windows+R調出執行框,輸入cmd
也可以按住shitf 右鍵 有一個“在此處開啟命令視窗”,即可在當前路徑開啟cmd。否則開啟之後的路徑時當前使用者的路徑。
一些我感覺沒什麼用處的命令就不講了,講一些實用點的。
dir #檢視檔案/資料夾 msconfig #顯示開機啟動 ipconfig/all #檢視本機各個網絡卡的ip地址 cd <path> #進行目錄跳轉,但是不能跨磁碟,加上 /D 之後可以進行磁碟間的跳轉 md <name> #新建資料夾 del <name> #刪除檔案 echo #列印字元 cls #清屏 dir | find "test" #查詢當前目錄下的檔案 '|'是一種管道機制,是為了將前一個命令的輸出作為後一個命令的輸入
提示:無論是linux還是windows路徑分隔符都可以用’/'
想了解更多?點這裡
###實用指令碼
for /F "tokens=*" %a in ('dir /A:-D /B') do move "%a" "%a.bak"
#別看只有一行,遍歷當前目錄,並重命名為.bak
如果儲存為.bat檔案,那麼這個指令碼應該這麼寫,將%a改為%%a.
for /F "tokens=*" %%a in ('dir /A:-D /B') do move "%%a" "%%a.bak"
bat拖拽,將下面程式碼儲存為bat檔案,將檔案拖拽到上面,即可顯示給檔案的絕對路徑,檔名全名,檔名,副檔名
@echo off REM 判斷檔案型別 set "str1=%1" set "str2=%~nx1" set "str3=%~n1" set "str4=%~x1" REM 檔案絕對路徑 %1 檔案全名%~nx1 檔名 %~n1 副檔名 %~x1 echo "%str1%" echo "%str2%" echo "%str3%" echo "%str4%" pause
我之前遇到過這麼一個問題,接下來給出解決方案
描述:我有一個脫水印的bat,它是通過拖拽來進行工作的。但是每次只能一張一張的拖拽,而我的任務是要脫100張照片的水印,那麼我如何減少我的工作量,達到自動化的目的呢!?
其實拖拽的最終目的就是為了獲取該檔案的路徑,因此我們可以簡單的修改bat指令碼。
最後只能欲哭無淚,沒有有效的實現辦法。
@echo off REM 獲取所有需要脫水印檔案的路徑 rem set "str1=%1" call drag.bat %1 call drag.bat %2 call drag.bat %3 call drag.bat %4 call drag.bat %5 call drag.bat %6 call drag.bat %7 call drag.bat %8 call drag.bat %9 pause
只能是這樣了,%1~9
分別代表著9個引數,因此我們一次最多隻能處理9個檔案。
可以說一下思路:利用for
命令獲取需要脫水印的圖片的路徑,然後通過call
傳參給相應的bat
。
利用%*
獲取所有的引數(這樣就不會有數量的限制了),但是沒有辦法將這些引數分離開來,在bat中分離字串是很麻煩的!!
#總結
寫的有點水!-.-