Bat批處理腳本程序 基礎

原創

由於自身原因,最近半年都在家帶孩子,很久沒寫博客了,最近在家兼職的工作需要拷貝來拷貝去,突發興趣,想研究一下批處理,感覺有時候用起來真的很方便。
直接新建一個文本,把後綴改成.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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章