原創
由於自身原因,最近半年都在家帶孩子,很久沒寫博客了,最近在家兼職的工作需要拷貝來拷貝去,突發興趣,想研究一下批處理,感覺有時候用起來真的很方便。
直接新建一個文本,把後綴改成.bat 就建成了一個批處理程序,然後再用文本打開編寫,找了一下發現iBat這個軟件來編輯很不錯,很傻瓜很方便,不會命令都能寫批處理。
學習目標:能看懂Bat文件,修改文件。
DOS批處理命令是腳本語言,都是按照自上而下的流程逐行執行的,也就是說,只有第一行的命令執行了之後,纔可能執行第二行,第二行執行完之後,再執行第三行。
【基礎】
echo off //關閉回顯,一般寫在批處理開頭,表示只顯示命令結果,不顯示執行的命令,如果前面加@,@echo off,那麼這條命令本身也不顯示
echo on //和上面相反
echo. //後面緊跟一個小數點,顯示一條空行
echo //空格後跟文字,顯示文字
rem //註釋,開啓回顯的話會顯示註釋的內容
:: //註釋,完全註釋不顯示回顯
cd c:\ //跳轉到C盤
/? //命令後接/?會提示用法和參數 比如 choice/?
>nul //命令最後接,不顯示結果和提示
pause //暫停,顯示請按任意鍵繼續,pause>nul不顯示文字
ping //後面跟IP,顯示延遲
title 標題 //窗口標題欄命名
color 0A //文字綠色底黑色
exit //退出批處理程序,並且退出CMD控制檯
cls //清理屏幕
errorlevel //內置錯誤級別變量 0沒有錯誤 其他值錯誤
%0 //腳本自身
start /max "" "D:\cloudmusic.exe" //以最大窗口運行程序
echo 文字>c:\測試.txt(文字>>c:\測試.txt) // 創建txt文本 >是存在文件就覆蓋 >>是存在就累加寫入
【文件夾】
md (mkdir) c:\文件夾 //創建文件夾 (..\文件夾 //創建到批處理文件所在的上級目錄中)
ren (rename) c:\文件夾 新名字 //重命名文件夾
rd (redir) /s /q c:\文件夾 //刪除文件夾( /s 刪除子目錄和文件 /q 不詢問 )
xcopy /e /y c:\文件夾 D:\文件夾\ //複製文件夾( /e 複製所有子目錄,包括空目錄。/y 覆蓋文件 )
copy //複製文件夾
del //刪除文件 (del 0% 刪除自身)
【set】
%變量名% //%%相當於變量引用,比如echo %time% 輸出當前時間
set /p aaa=請輸入數字: //提示用戶輸入,並把值賦給aaa
set /a bbb=%aaa%*2 //執行數學運算,bbb等於aaa*2
【goto】
goto a //goto 跳轉命令 a 標籤名 指定跳轉到標籤位置繼續執行腳本
:a //定義標籤
echo 你是用goto命令來到標籤a
goto :eof (內置的End Of File,來到程序的最後一行,相當於退出當前Bat腳本,但是不退出CMD控制檯會等候下一條命令)
【if】
注意:沒有else if的寫法
if exists c:\學習.txt (echo 存在) ELSE (echo 不存在) //是否存在
if not exists c:\學習.txt (echo 不存在) ELSE (echo 存在) //是否不存在
【& && || |】
& 複合語句連接符,分隔一個命令行中的多個命令
&& 複合語句連接符,在 && 前的命令成功時,才執行 && 後面的命令。
|| 複合語句連接符,在 || 前的命令失敗時,才執行 || 後面的命令。
| 管道符號,將|前的進程輸出,當做|後進程的輸入。
【延遲執行】
1.因爲ping 命令是一秒執行一次 -n 代表的次數 127.1是本地網絡系統迴環地址127.0.0.1簡寫 >nul不顯示ping的結果 這樣就實現了延遲5秒執行
ping 127.1>nul -n 5
2.choice /t 暫停秒數 /d 到時間後選擇的選項 /n 隱藏選項列表 >nul不顯示結果
choice /t 5 /d y /n >nul
例子:
@echo off
rem 這是一行註釋,開啓回顯會顯示
:: 這也是一行註釋,開啓回顯也不顯示
echo.
echo 現在開始Bat基礎學習
echo.
title Bat基礎學習
color 0A
pause
:StartStudy
::清理屏幕
cls
echo.
echo 0.關閉Bat
echo 1.當前時間
echo 2.打開網易雲音樂
echo 3.測試延遲
echo 4.創建txt文本
echo 5.文件夾操作
echo.
set /p choice=請選擇練習的內容:
if %choice%==0 goto end
if %choice%==1 goto a
if %choice%==2 goto b
if %choice%==3 goto c
if %choice%==4 goto d
if %choice%==5 goto e
rem 0.關閉Bat
:end
exit
rem 1.當前時間
::表示從左向右指針向右偏0位,然後從指針偏移到的位置開始提取8位字符
:a
echo.
echo 當前時間是: %date% %time:~0,8%
echo.
pause
goto StartStudy
rem 2.打開網易雲音樂
::需要修改路徑
:b
echo.
start /max "" "D:\軟件\CloudMusic\cloudmusic.exe"
echo.
pause
goto StartStudy
rem 3.測試延遲
:: 出現錯誤再次輸入IP
:c
set /p ip=請輸入要ping的IP:
ping %ip%
if not %errorlevel% == 0 (
echo.
echo Ping對方的IP出現錯誤
goto a
)
echo.
pause
goto StartStudy
rem 4.創建txt文本
:d
echo.
set /p txtPath=請輸入要創建的文本路徑:
set /p txtName=請輸入要創建的文本名:
set /p txtContent=請輸入文本內容:
echo.
echo %txtContent% >> %txtPath%/%txtName%.txt && echo 創建成功! || echo 創建失敗!
echo.
pause
goto StartStudy
rem 5.文件夾操作
::需要修改路徑
:e
::創建文件夾
echo.
echo 開始創建文件夾
if not exist F:\我的文件夾 (
md F:\我的文件夾 && echo F:\我的文件夾 創建成功! || echo 創建失敗!
)else (
echo 已經存在 F:\我的文件夾,不需要創建!
)
echo.
::延遲3秒 重命名文件夾
echo 按下任意鍵,將在3秒後把 我的文件夾 改名爲 我的改名文件夾
pause>nul
ping 127.0.0.1>nul -n 3
ren F:\我的文件夾 我的改名文件夾 && echo 改名成功! || echo 改名失敗!
::延遲3秒 複製文件夾 /e 複製所有子目錄,包括空目錄。/y 覆蓋文件
echo 按下任意鍵,將在3秒後把 我的改名文件夾 複製到 D盤 下
pause>nul
choice /t 3 /d y /n >nul
xcopy "F:\我的改名文件夾" "D:\我的改名文件夾\" /e /y && echo D:\改名後的文件夾 複製成功! || echo 複製失敗!
::延遲3秒 刪除文件夾 /s 是否刪除子目錄 /q 是否詢問
echo 按下任意鍵,將在3秒後刪除創建的文件夾
pause>nul
ping 127.0.0.1>nul -n 3
rd /s /q D:\我的改名文件夾 && rd /s /q F:\我的改名文件夾 && rd /s /q F:\我的文件夾 && echo 刪除成功!
echo.
pause
goto StartStudy
腳本下載:
http://download.csdn.net/download/u012322710/10190451