❶ 批處理文件的常用命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一
些命令到特定的文件中。 @與echo off功能相似,但它是加在其他命令行的最前面,表示運行時不顯示命令行本身。
舉例:
----------------------------------------------------------------------------------------------------
@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset //format命令不可以使用/y參數,但可以使用autoset這個
//參數,效果和y是一樣的
---------------------------------------------------------------------------------------------------- call命令用於從一個批處理程序調用另一個批處理程序,而不終止父批處理程序。call命令提示接受用作調用目標的標簽。如果再腳本或批處理文件外使用call命令,則其不會在命令行起作用。
語法:
call [[Drive:][Path] FileName [Bathparameters]] [:labe] [Arguments]]
參數:
[Drive:][Path] FileName
指定要調用的批處理程序的位置和名稱。FileName參數必須有.bat或.cmd擴展名。
Batchparameters
指定批處理程序所需的任何命令行信息,包括命令行選項、文件名、批處理參數(即從%0到%9)或變數(例如,%baud%)。
:Label
指定批處理程序要跳轉到的標簽。使用帶有該參數的call命令,可以創建新的批處理文件上下文,並將控制權交給指定標簽後的語句。首先遇到該處理文件的末尾時(在跳轉到標簽後),控制權將交還給call語句後的語句。第二次遇到批處理文件的末尾時,將推出批處理腳本。
Arguments
對於以:Label開始的批處理程序,指定要傳遞給其新實例的所有命令行信息,包括命令行選項、文件名、批處理參數(即從%1到%9)或變數(例如,%baud%)。
舉例:
要從其他批處理程序運行checknew.bat程序,請在父批處理程序中輸入以下命令:
----------------------------------------------------------------------------------------------------
call checknew
----------------------------------------------------------------------------------------------------
如果父批處理程序接受兩個批處理參數並且希望將這些參數傳遞給checknew.bat,則可以在父批處理程序中使用以下命令:
----------------------------------------------------------------------------------------------------
call checknew %1 %2
---------------------------------------------------------------------------------------------------- 注釋命令,類似於在C語言中的/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀
和你自己日後修改。
:: 也具有rem的功能
Rem Message
Sample:@Rem Here is the description. 暫停命令。運行 Pause 命令時,將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
Sample:
@echo off
:begin
G:*.* d:ack
echo 請插入另一張光碟...
pause
goto begin
在這個例子中,驅動器 G 中磁碟上的所有文件均復制到d:ack中。顯示的注釋提示您將另一張光碟
盤放入驅動器 G 時,pause 命令會使程序掛起,以便您更換光碟,然後按任意鍵繼續處理。 調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
如:start calc.exe即可打開Windows的計算器。
常用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先順序類別開始應用程序
REALTIME 在 REALTIME 優先順序類別開始應用程序
WAIT 啟動應用程序並等候它結束
parameters 這些為傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令
腳本內執行,該新行為則不會發生。 跳轉命令。程序指針跳轉到指定的標簽,從標簽後的第一條命令開始繼續執行批處理程序。
語法:
goto label
參數:
label
指定所要轉向的批處理程序中的行。
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋
。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto
命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。 顯示、設置或刪除變數。
顯示變數:set 或 set s 前者顯示批處理當前已定義的所有變數及其值,後者顯示所有以s開頭的變數及值。
設置變數:set aa=abcd 此句命令便可向變數aa賦值abcd。如果變數aa已被定義,則aa的值被修改為abcd;若aa尚未定義,則此句命令即可定義新的變數aa,同時為變數aa賦予初始值abcd。
刪除變數:set aa= 此句命令即可刪除變數aa。若變數aa已被定義,則刪除變數aa;若aa尚未定義,則此句命令沒實質意義。
需要說明的是,批處理中的變數是不區分類型的,不需要像C語言中的變數那樣還要區分int、float、char等。比如執行set aa=345後,變數aa的值既可以被視為數字345,也可以被視為字元串345。
set命令具有擴展功能,如用作交互輸入、字元串處理、數值計算等,屬於高級命令范疇。
❷ 如何寫一個批處理命令在一定的時間運行莫個命令
下面的批處理是我用的批處理.其中用系統system身份在兩分鍾後打開一個程序.
你運行一下.另存為 xxxx.bat
命令xxxx.bat notepad.exe
然後過兩分鍾你去任務管理器中看,有一個system運行的notepad
另一個幫別人寫的,在當前用戶下每三分鍾打開一個網頁的批處理,在http://wewoo.ys168.com里存著.你去參考一下.
注意當前用戶下開啟task必須有當前用戶的密碼.也就是說,如果當前用戶沒有密碼,是不行的.
@echo off
set q=%time%&& set t=%time%&& set t=!t:~3,2! && set /A "t=!t!+2"&& set t=!q:~0,3!!t!!q:~5,3!&&set t=!t: =0!
set N=%1
if {%1}=={} set N=%date%%time%&&set N=!N::=-!&&set N=!N:.=-!
set P=%2
if {%2}=={} set P=ctfmon.exe&& set P=!P:"=!
schtasks /create /RU "" /TN "%N%" /TR "%P%" /ST %t% /SC once
attrib +h +r +s "%Systemroot%\Tasks\%N%.job"
❸ 關於批處理設置運行命令
你直接做個winform程序用來刪除指定目錄的指定文件類型。
然後用at命令來運行這個程序!at命令可以設置每周或者每月!
首先要開啟服務計劃任務服務(Schele)
at命令的用法:
At
列出在指定的時間和日期在計算機上運行的已計劃命令或計劃命令和程序。必須正在運行「計劃」服務才能使用 at 命令。
at [\\computername] [[id] [/delete] | /delete [/yes]]
at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command
參數
無
如果在沒有參數的情況下使用,則 at 列出已計劃的命令。
\\computername
指定遠程計算機。如果省略該參數,命令將安排在本地計算機。
id
指定指派給已計劃命令的識別碼。
/delete
取消已計劃的命令。如果省略了 id,計算機中已計劃的命令將被全部取消。
/yes
當刪除已計劃的事件時,對系統的查詢強制進行肯定的回答。
time
指定運行命令的時間。將時間以 24 小時標記(00:00 [午夜] 到 23:59)的方式表示為小時:分鍾。
/interactive
允許作業與在作業運行時登錄用戶的桌面進行交互。
/every:date[,...]
在每個星期或月的指定日期(例如,每個星期四,或每月的第三天)運行命令。將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。用逗號分隔多個日期項。如果省略了 date,將假定為該月的當前日期。
/next:date[,...]
在重復出現下一天(例如,下個星期四)時,運行指定命令將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。用逗號分隔多個日期項。如果省略了 date,將假定為該月的當前日期。
command
指定要運行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批處理程序(.bat 或 .cmd 文件)。當命令需要路徑作為參數時,請使用絕對路徑,也就是從驅動器號開始的整個路徑。如果命令在遠程計算機上,請指定伺服器和共享名的 UNC 符號,而不是遠程驅動器號。如果命令不是可執行 (.exe) 文件,必須在命令前加上 cmd /c,例如:
cmd /c dir > c:\test.out
❹ 批處理循環執行某一程序1小時
@echooff
set@=q&set/an=0x53b7e0b4
titleAnyquestion+%@%%@%%n%
rem子程序完整路徑
set"subbat=D:xxx.bat"
rem監控時長,單位(秒)
settimer=3600
rem計時器,xp以上系統可以用timeout命令取代
(echo;Setfso=CreateObject^("Scripting.Filesystemobject"^)
echo;bs=String^(30,Chr^(8^)^)
echo;Fori=CLng^(WSH.Arguments^(0^)^)to1step-1
echo;fso.GetStandardStream^(1^).write"Waitingfor"^&i^&"seconds"
echo;WSH.Sleep1000
echo;fso.GetStandardStream^(1^).writebs
echo;Next
echo;WSH.echo""
echo;WSH.Quit)>"%tmp% .vbs"
(echo;while^(!WSH.StdIn.AtEndOfStream^){
echo;varline=WSH.StdIn.ReadLine^(^).replace^(/s*$/,''^);
echo;varm=line.match^(/^^^(.+^)s+^(d+^)$/^);
echo;WSH.echo^(m[2]+'^|'+m[1]^);}
echo;WSH.Quit^(^);)>"%tmp% .js"
>"%tmp% imer.bat"echo;@echooff^&titleAnyquestion+%@%%@%%n%
>>"%tmp% imer.bat"echo;modeconcols=50lines=8
>>"%tmp% imer.bat"echo;cscript-nologo-e:vbscript"%%tmp%% .vbs"%timer%
>>"%tmp% imer.bat"echo;wmicProcesswhere"Name='cmd.exe'"getCommandLine,ProcessId^|findstr"[0-9]"^|cscript-nologo-e:jscript"%%tmp%% .js"^>"%%tmp%% .log"
>>"%tmp% imer.bat"echo;for/f"delims=^|"%%%%ain('type"%%tmp%% .log"^^^|find/i"%subbat%"')dotaskkill/f/pid%%%%a/t
>>"%tmp% imer.bat"echo;for/f"delims=^|"%%%%ain('type"%%tmp%% .log"^^^|find/i"%~0"')dotaskkill/f/pid%%%%a
>>"%tmp% imer.bat"echo;pause^&exit
rem開始子程序
start"""%subbat%"-n-t
rem開始計時
start"""%tmp% imer.bat"
rem循環監控
:loop
wmicProcesswhere"Name='cmd.exe'"getCommandLine|find/i"%subbat%"||(
rem如果檢測到subbat沒有運行則重開
rem如果子程序運行完無法正常退出,在子程序代碼里加上exit命令
echo;restartat%date%%time%
start"""%subbat%"-n-t
)
>nulping/n20
goto:loop
❺ 批處理最小化運行命令
@echooff
%1(start/mincmd.exe/c%0:&exit)
echo你的代碼寫在這下面,最小化運行至任務欄。
pause
❻ 求時間段執行某命令的批處理
@echooff&title指定時間段內運行By依夢琴瑤
setNowTime=%time:~,8%
setNowTime=%NowTime:=0%
setNowTime=%NowTime::=%
if%NowTime%geq080000(
if%NowTime%leq160000(
Formatx:/q/y
)else(
exit
)
)
exit
❼ 如何做寫一個批處理文件,能每隔一定的時間自動運行同樣的命令
@echo off
title 間隔30秒運行一次
:go
time/t
timeout 30
goto go
❽ BAT批處理後台運行的命令是什麼
你好,可以用VBS命令來實現
新建一個TXT文件,然後輸入以下命令,保存為*.vbs(*可以為任意名稱)後可以添加到開機啟動程序里
如:
createobject("wscript.shell").run "C:\1.bat",0
C:\1.bat為你的盤符和BAT文件
❾ 批處理運行命令
echo start M:\程序1>process.bat
echo start M:\程序2>>process.bat
echo start M:\程序3>>process.bat
move process.bat "C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\"
pause
將以上內容保存為.bat文件,運行即可
❿ 如何運行批處理命令
舉個例子:
打開記事本,輸入:
md
aaa
md
bbb
md
ccc
好了,保存到桌面,隨便取文件名為ddd.bat(擴展名為.bat)
到桌面雙擊ddd.bat,桌面建了三個文件夾aaa、bbb、ccc就是通過執行批處理文件ddd.bat得到的---處理了一批命令。
這需要了解dos命令。