1. 程式人生 > >Windows批處理檔案(.bat檔案和.cmd檔案)介紹以及簡單使用

Windows批處理檔案(.bat檔案和.cmd檔案)介紹以及簡單使用

首先說一下cmd檔案和bat檔案的區別,從檔案描述中的區別是,cmd檔案叫做:Windows命令指令碼,bat檔案叫:批處理檔案,兩者都可以使用任意一款文字編輯器進行建立、編輯和修改,只是在cmd中支援的命令要多於bat。

批處理檔案是一種沒有什麼固定格式的檔案,他可以處理一條或者多條命令,檔案的副檔名是:.cmd或者.bat,文本里面的每一行就是一條處理指令,雙擊執行它的時候,Windows就會呼叫cmd.exe去執行它。

接著我們來認識第一條指令:echo和@

@echo off

通常我們將這條指令寫在我們批處理檔案的第一行,因為有了這條指令之後,當我們在執行.bat的時候,就不會將檔案裡面的內容打印出來了,如果沒有這句話,會先去將檔案裡面的內容列印在螢幕上,通常我們是不希望使用者瞭解裡面的程式碼結構的.

第二條指令:set

set a=1
set string1=abcdefg

使用set命令,我們可以設定變數,其中“a”和“string1”就是我們設定的變數,可以直接給設定的變數賦值。

當我們希望將設定的變數顯示在螢幕的時候,需要在變數的前後帶上“%”,然後使用echo命令將設定的變數進行回顯。

如下:

echo %a%
echo %string1%

當我們需要輸出空行的時候,使用:“echo.”,其中“.”必須緊跟在echo命令的後面,而且“.”也可以被,:;”/等任一的符號代替,這樣我們就會輸出一個空行,相當於敲了一個回車。

第三條指令:REM 和 ::

這兩條指令的作用是幫助我們進行指令的註釋,類似於C++中的:“/**/”和“//”

REM set a=1
::set string1=abcdefg

第四條指令:PAUSE

pause在指令中的作用是暫停,當我們需要在檔案執行的中間讓其暫停一下,看一下我們的輸出,就會使用PAUSE命令,然後在控制檯就會顯示:“請按任意鍵以繼續”,當我們按下任意鍵之後,檔案就會繼續運行了,當我們希望在螢幕上顯示自己的語句的時候,可以這樣寫:

echo 其他提示語 & pause > nul

這樣在螢幕顯示的就是我們自己設定的提示語了。

第五條指令:errorlevel

通常程式執行之後會有一個返回值,來標誌這次程式執行的結果,一般預設值為0,程式執行錯誤的時候會設定成:1.
使用:echo %errorlevel%來顯示上一句指令的返回值。

第六條指令:title

使用這個指令來改變cmd視窗的名字,個人感覺作用不大。

::使用之後就會顯示新的標題框了
title 新標題   

第七條指令:start

作用:啟動一個單獨的視窗以執行指定的程式或命令

當我們在cmd視窗輸入:help start之後,然後回車,就會給我們彈出start命令的解析:

但是通常我們使用start命令很簡單:strart  “執行程式的絕對路徑” “執行路徑的引數”

或者我們可以將寫好的批處理檔案放在和要執行的程式同一個目錄下面,這樣我們就只需:start 程式名 程式引數,這樣呼叫就預設是在批處理檔案的同級目錄。

第八條指令:assoc和ftype

assoc:設定副檔名的關聯,關聯到檔案型別

ftypr:設定檔案型別的關聯,關聯到執行程式和引數

解釋:當我們開啟一個.txt字尾的檔案,系統不是根據.txt判斷,開啟這個程式應該用notepad.exe開啟,而是先去根據.txt來判斷這個檔案屬於txtfile這種檔案型別,然後再根據txtfile這種檔案型別關聯的物件是:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1,然後再用notepad.exe開啟txt檔案。

我們可以使用命令:assoc          來顯示資料夾中所有的檔案關聯到的檔案型別

可以使用命令:       assoc.txt      來顯示資料夾中.txt檔案所關聯的檔案型別,輸出:.txt=txtfile

可以使用命令:       assoc.exe    來顯示資料夾中.exe檔案所關聯的檔案型別,輸出:.exe=exefile

我們可以使用命令:ftype             來顯示資料夾中所有檔案型別關聯的執行程式

可以使用命令:       ftype txtfile    來顯示資料夾中txtfile型別的檔案開啟使用的是什麼程式,

                                                      輸出:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1

可以使用命令:       ftype exefile   來顯示資料夾中exefile型別的檔案關聯的是什麼執行程式

                                                       輸出:exefile="%1" %*

第九條指令:call指令

如果你想在某一批處理程式中呼叫另外一個批處理檔案,就是用call指令。

現在我們在E:\根目錄建立Temp.bat,內容如下:

echo off
echo this is Temp.bat

在E:\資料目錄下建立Zzzmain.bat,內容如下:

echo off
call E:\Temp.bat
echo this is Zzzmain.bat
pause

當我們執行Zzzmain.bat的時候就會顯示:

call 指令呼叫另外的批處理檔案的時候,如果兩個批處理檔案沒有在同一個檔案裡面,那麼呼叫的檔案就需要把他的路徑加上,如果呼叫的批處理檔案需要引數:call ..\..\×××.bat  引數

第十條指令:attrib指令

顯示或者更改檔案屬性

例子:attrib +a +s +h Temp
上面的命令將資料夾Temp屬性設為存檔、系統、隱藏屬性,這條命令是在Temp資料夾的所在路徑執行的,但是如果沒有在Temp路徑的話,就需要加上Temp的路徑了。

這是一些常用的指令,之後還會介紹一些其他的有關操作,比如:字串操作和流程控制之類的相關內容。