第一篇:T-SQL批處理(模版)
先打個(gè)比方:如果你家來了客人,你媽媽給你2元錢到商店買1瓶啤酒給客人喝。結(jié)果客人不夠喝,你媽怕浪費(fèi),又給你2元錢讓你下樓再去買1瓶,結(jié)果又不夠喝,又讓你下樓再買1瓶,還不夠,再讓你買一瓶……這時(shí)你可能會怎么說?你肯定會不耐煩地回答:媽,拜托你,別讓我每次1瓶1瓶的買,1次多買幾瓶不就行了嗎?
我們執(zhí)行SQL語句同樣如此,因?yàn)镾QL Server是網(wǎng)絡(luò)數(shù)據(jù)庫,一臺服務(wù)器可能有很多遠(yuǎn)程客戶端,如果在客戶端一次發(fā)送1條SQL語句,然后客戶返回結(jié)果;然后再發(fā)送1條SQL語句,再返回,效率太低了。所以為了提高效率,SQL Server就引出了批處理的概念。
?批處理是包含一個(gè)或多個(gè) SQL 語句的組,從應(yīng)用程序一次性地發(fā)送到SQL Server執(zhí)行 ?SQL Server 將批處理語句編譯成一個(gè)可執(zhí)行單元,此單元稱為執(zhí)行計(jì)劃。執(zhí)行計(jì)劃中的語句
每次執(zhí)行一條
SELECT * FROM stuInfo
SELECT * FROM stuMarks
UPDATE stuMarks
SET writtenExam=writtenExam+2
GO
?GO是批處理的標(biāo)志,表示SQL Server將這些T-SQL語句編譯為一個(gè)執(zhí)行單元,提高執(zhí)行效
率
?一般是將一些邏輯相關(guān)的業(yè)務(wù)操作語句,放置在同一批中,這完全由業(yè)務(wù)需求和代碼編寫者決定 ?SQLServer規(guī)定:如果是建庫、建表語句、以及我們后面學(xué)習(xí)的存儲過程和視圖等,則必須在語句末尾添加 GO 批處理標(biāo)志
第二篇:批處理練習(xí)題
批處理實(shí)現(xiàn)兩文本同行交替輸出
有兩個(gè)文本如下(實(shí)際中并不知道兩文本各有多少行): 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccccccccccccccc eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ggggggggggggggggggggggggggggggggggggggg 004km.cne easy]
I should have known all along.There was something wrong.I just never read between the lines.Then I woke up one day and found you on your way.Leaving nothing but my heart behind.What can I do to make it up to you.Promises don't come easy.But tell me if there's a way to bring you back home to stay.Well I'd promises anything to you.I've been walkin' around with my head hanging down.Wondrin' what I'm gonna do.'Cause when you walked out that door.要求,CMD原始窗口中,不調(diào)節(jié)窗口大小,不生成臨時(shí)文件,居中顯示文本內(nèi)容。輸出如下: 代碼: [Promise don't come easy] I should have known all along.There was something wrong.I just never read between the lines.Then I woke up one day and found you on your way.Leaving nothing but my heart behind.What can I do to make it up to you.Promises don't come easy.But tell me if there's a way to bring you back home to stay.Well I'd promises anything to you.I've been walkin' around with my head hanging down.Wondrin' what I'm gonna do.'Cause when you walked out that door.@echo off copy /y 1.txt 2.txt>nul echo.>>2.txt&echo end>>2.txt for /f “tokens=1,2* delims=: ” %%i in('findstr /n /o.* 2.txt')do(set “_%%i=%%j”&set “.%%i=%%k”
if %%i geq 2 call :lp %%i)del /q 2.txt&pause>nul&goto :eof :lp set /a n=%1-1 set /a num=_%1-_%n%-2 set /a kl=(80-num)/2 for /l %%i in(1,1,%kl%)do set /p= @echo off for /f “delims=” %%.in(1.txt)do(set “str=%%.” call,set “str=%%str:*a=%%” for /f “delims=a” %%{ in(“%%.”)do(set “var=%%{” call,echo.%%var:0=%%a%%str%%))pause>nul @echo off for /f “tokens=1,2 delims=a” %%i in(1.txt)do(if “%%j” neq “"(set ”str=%%i“ call,set ”str=%%str:0=%%" call,echo %%str%%a%%j)else(echo a%%i))pause>nul Windows批處理命令總結(jié) 命令:echo 1.1 echo含義 顯示消息,或者啟用或關(guān)閉命令回顯。ECHO [ON | OFF]、ECHO [message] 若要顯示當(dāng)前回顯設(shè)置,請鍵入不帶參數(shù)的 ECHO。 1.2 echo舉例 ①echo 顯示當(dāng)前回顯設(shè)置,結(jié)果有ECHO 處于打開狀態(tài)、ECHO 處于關(guān)閉狀態(tài) ②echo on 打開回顯設(shè)置,即ECHO 處于打開狀態(tài) ③echo off 關(guān)閉回顯設(shè)置,即ECHO 處于關(guān)閉狀態(tài) ④echo 我是中國人 顯示輸出的內(nèi)容信息,窗口輸出“我的中國人”,不需要加單雙引號 ⑤echo.換行 命令:pause 2.1 pause含義 暫停批處理程序,并顯示以下消息:請按任意鍵繼續(xù)...2.2 pause舉例 ①pause 顯示“請按任意鍵繼續(xù)...”信息 命令:@ 3.1 @含義 用于禁止當(dāng)前執(zhí)行的命令回顯在屏幕上 3.2 @舉例 @echo off 該命令行不會回顯在屏幕上 4 命令:goto 4.1 goto含義 將 cmd.exe 定向到批處理程序中帶標(biāo)簽的行。 GOTO label label 指定批處理程序中用作標(biāo)簽的文字字符串。標(biāo)簽必須單獨(dú)一行,并且以冒號打頭。如果命令擴(kuò)展被啟用,GOTO 會如下改變: GOTO 命令現(xiàn)在接受目標(biāo)標(biāo)簽 :EOF,這個(gè)標(biāo)簽將控制轉(zhuǎn)移到當(dāng)前批腳本文件的結(jié)尾。不定義就退出批腳本文件,這是一個(gè)容易的辦法。有關(guān)能使該功能有用的 CALL 命令的擴(kuò)展描述,請鍵入CALL /?。 4.2 goto舉例 ①命令行如下 執(zhí)行結(jié)果如下 命令:call 5.1 call含義 從批處理程序調(diào)用另一個(gè)批處理程序。 CALL [drive:][path]filename [batch-parameters] batch-parameters 指定批處理程序所需的命令行信息。如果命令擴(kuò)展被啟用,CALL 會如下改變: CALL 命令現(xiàn)在將卷標(biāo)當(dāng)作 CALL 的目標(biāo)接受。語法是:CALL:label arguments 一個(gè)新的批文件上下文由指定的參數(shù)所創(chuàng)建,控制在卷標(biāo)被指定后傳遞到語句。你必須通過達(dá)到批腳本文件末兩次來 “exit” 兩次。第一次讀到文件末時(shí),控制會回到 CALL 語句的緊后面。第二次會退出批腳本。5.2 call舉例 ①call 文件名 調(diào)用外部的批處理文件,并執(zhí)行內(nèi)容 執(zhí)行結(jié)果如下: 命令:if 6.1 if含義 執(zhí)行批處理程序中的條件處理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有條件為 false 的情況下,Windows 才應(yīng)該執(zhí)行該命令。 ERRORLEVEL number 如果最后運(yùn)行的程序返回一個(gè)等于或大于指定數(shù)字的退出代碼,指 定條件為 true。 string1==string2 如果指定的文字字符串匹配,指定條件為 true。 EXIST filename 如果指定的文件名存在,指定條件為 true。 command 如果符合條件,指定要執(zhí)行的命令。如果指定的條件為 FALSE,命令后可跟 ELSE 命令,該命令將 在 ELSE 關(guān)鍵字之后執(zhí)行該命令。ELSE 子句必須出現(xiàn)在同一行上的 IF 之后。例如: IF EXIST filename.(del filename.)ELSE(echo filename.missing.)6.2 if舉例 ①字符串匹配判斷和文件是否存在判斷(既可以為相對路徑,也可以為絕對路徑)比較運(yùn)算符 比較運(yùn)算符有以下幾種: EQU不等于 LSS小于或等于 GTR大于或等于 命令:for 8.1 for含義 對一組文件中的每一個(gè)文件執(zhí)行某個(gè)特定命令。 FOR %variable IN(set)DO command [command-parameters] %variable 指定一個(gè)單一字母可替換的參數(shù)。 (set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。 command 指定對每個(gè)文件執(zhí)行的命令。 command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。在批處理程序中使用 FOR 命令時(shí),指定變量請使用 %%variable 而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I.如果啟用命令擴(kuò)展,則會支持下列 FOR 命令的其他格式: FOR /D %variable IN(set)DO command [command-parameters] 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。FOR /R [[drive:]path] %variable IN(set)DO command [command-parameters] 檢查以 [drive:]path 為根的目錄樹,指向每個(gè)目錄中的 FOR 語句。 如果在 /R 后沒有指定目錄規(guī)范,則使用當(dāng)前目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹。 FOR /L %variable IN(start,step,end)DO command [command-parameters] 該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。因此,(1,1,5)將產(chǎn)生序列 8.2 for舉例 ①循環(huán)輸出數(shù)字和循環(huán)輸出3.txt中的文本內(nèi)容 命令:rem 9.1 rem含義 在批處理文件或 CONFIG.SYS 里加上注解或說明。REM [comment] 9.2 rem舉例 ①rem 這是一條注釋,不會執(zhí)行 10 命令:start 10.1 start含義 重新打開一個(gè)窗口或執(zhí)行程序,并根據(jù)參數(shù)執(zhí)行相應(yīng)命令 10.2 start舉例 ①start notepad++ 打開notepad++程序 ②start “這是新的cmd窗口” echo 在第二個(gè)窗口執(zhí)行程序 命令:set 11.1 set含義 顯示、設(shè)置或刪除 cmd.exe 環(huán)境變量。SET [variable=[string]] variable 指定環(huán)境變量名。 string 指定要指派給變量的一系列字符串。要顯示當(dāng)前環(huán)境變量,鍵入不帶參數(shù)的 SET。 11.2 set舉例 ①set 顯示所有的環(huán)境變量,環(huán)境變量不區(qū)分大小寫 ②set java_home 顯示以“java_home”開頭的環(huán)境變量 ③set JAVA_HOME=D:myworkjdkinstall 設(shè)置JAVA_HOME的值 ④set /p var=請輸入您的姓名: 提示用戶輸入?yún)?shù),%var%調(diào)用該參數(shù) ⑤set /a var=2*2 設(shè)置運(yùn)算表達(dá)式 命令:choice 12.1 choice含義 CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述:該工具允許用戶從選擇列表選擇一個(gè)項(xiàng)目并返回所選項(xiàng)目的索引。參數(shù)列表: /C choices 指定要?jiǎng)?chuàng)建的選項(xiàng)列表。默認(rèn)列表是 “YN”。 /N 在提示符中隱藏選項(xiàng)列表。提示前面的消息得到顯示,選項(xiàng)依舊處于啟用狀態(tài)。 /CS 允許選擇分大小寫的選項(xiàng)。在默認(rèn)情況下,這個(gè)工具 是不分大小寫的。 /T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)??山邮艿闹凳菑?0 到 9999。如果指定了 0,就不會有暫停,默認(rèn)選項(xiàng) 會得到選擇。 /D choice 在 nnnn 秒之后指定默認(rèn)選項(xiàng)。字符必須在用 /C 選 項(xiàng)指定的一組選擇中;同時(shí),必須用 /T 指定 nnnn。 /M text 指定提示之前要顯示的消息。如果沒有指定,工具只 顯示提示。 12.2 choice舉例 CHOICE /C YNC /M “確認(rèn)請按 Y,否請按 N,或者取消請按 C?!?CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M “選項(xiàng) 1 請選擇 a,選項(xiàng) 2 請選擇 b?!?CHOICE /C ab /N /M “選項(xiàng) 1 請選擇 a,選項(xiàng) 2 請選擇 b?!?13 命令:copy 13.1 copy含義 將一份或多份文件復(fù)制到另一個(gè)位置。 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+...]] [destination [/A | /B]] source 指定要復(fù)制的文件。 /A 表示一個(gè) ASCII 文本文件。 /B 表示一個(gè)二進(jìn)位文件。 /D 允許解密要?jiǎng)?chuàng)建的目標(biāo)文件 destination 為新文件指定目錄和/或文件名。 /V 驗(yàn)證新文件寫入是否正確。 /N 復(fù)制帶有非 8dot3 名稱的文件時(shí),盡可能使用短文件名。 /Y 不使用確認(rèn)是否要覆蓋現(xiàn)有目標(biāo)文件的提示。 /-Y 使用確認(rèn)是否要覆蓋現(xiàn)有目標(biāo)文件的提示。 /Z 用可重新啟動模式復(fù)制已聯(lián)網(wǎng)的文件。 /L 如果源是符號鏈接,請將鏈接復(fù)制到目標(biāo)而不是源鏈接指向的實(shí)際文件。 13.2 copy舉例 ①copy a.txt bak.txt 復(fù)制a.txt文件,命名為bak.txt,不能復(fù)制目錄下的文件并重命名 ②copy /b f:1.txt+2.txt f:3.txt 合并文件到一個(gè)新的文件 命令:move 14.1 move含義 移動文件并重命名文件和目錄。要移動至少一個(gè)文件: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 要重命名一個(gè)目錄: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 指定你想移動的文件位置和名稱。 destination 指定文件的新位置。目標(biāo)可包含一個(gè)驅(qū)動器號 和冒號、一個(gè)目錄名或組合。如果只移動一個(gè)文件 并在移動時(shí)將其重命名,你還可以包括文件名。 [drive:][path]dirname1 指定要重命名的目錄。 dirname2 指定目錄的新名稱。 /Y 取消確認(rèn)覆蓋一個(gè)現(xiàn)有目標(biāo)文件的提示。 /-Y 對確認(rèn)覆蓋一個(gè)現(xiàn)有目標(biāo)文件發(fā)出提示。 14.2 move舉例 ①move 3.txt D:a.txt 文件移動并重命名 命令:del 15.1 del含義 刪除一個(gè)或數(shù)個(gè)文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一個(gè)或多個(gè)文件或者目錄列表。通配符可用來刪除多個(gè)文件。 如果指定了一個(gè)目錄,該目錄中的所有文件都會被刪除。 /P 刪除每一個(gè)文件之前提示確認(rèn)。 /F 強(qiáng)制刪除只讀文件。 /S 刪除所有子目錄中的指定的文件。 /Q 安靜模式。刪除全局通配符時(shí),不要求確認(rèn) /A 根據(jù)屬性選擇要?jiǎng)h除的文件 屬性 R 只讀文件 S 系統(tǒng)文件 H 隱藏文件 A 存檔文件 I 無內(nèi)容索引文件 L 重分析點(diǎn) 表示“否”的前綴 /B 使用空格式(沒有標(biāo)題信息或摘要)。 /C 在文件大小中顯示千位數(shù)分隔符。這是默認(rèn)值。用 /-C 來 禁用分隔符顯示。 /D 跟寬式相同,但文件是按欄分類列出的。 /L 用小寫。 /N 新的長列表格式,其中文件名在最右邊。 /O 用分類順序列出文件。 排列順序 N 按名稱(字母順序) S 按大小(從小到大) E 按擴(kuò)展名(字母順序) D 按日期/時(shí)間(從先到后) G 組目錄優(yōu)先 -反轉(zhuǎn)順序的前綴 /P 在每個(gè)信息屏幕后暫停。 /Q 顯示文件所有者。 /R 顯示文件的備用數(shù)據(jù)流。 /S 顯示指定目錄和所有子目錄中的文件。 /T 控制顯示或用來分類的時(shí)間字符域。 17.2 dir舉例 ①dir /o F: 分類顯示F盤下的文件和文件夾 命令:find 18.1 find含義 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[...]] /V 顯示所有未包含指定字符串的行。 /C 僅顯示包含字符串的行數(shù)。 /N 顯示行號。 /I 搜索字符串時(shí)忽略大小寫。 /OFF[LINE] 不要跳過具有脫機(jī)屬性集的文件。 “string” 指定要搜索的文本字符串。 [drive:][path]filename 指定要搜索的文件。 18.2 find舉例 ①find /c /n “視” oa視圖對比.txt 從文件中查找“視”,并顯示行號 命令:type 19.1 type含義 顯示文本文件的內(nèi)容,或者創(chuàng)建文件 TYPE [drive:][path]filename 19.2 type舉例 ①type nul>a.txt 創(chuàng)建文件a.txt ②type a.txt 查看文件內(nèi)容 命令:md/mkdir 20.1 md含義 創(chuàng)建目錄。 MKDIR [drive:]path MD [drive:]path 如果命令擴(kuò)展被啟用,MKDIR 會如下改變: 如果需要,MKDIR 會在路徑中創(chuàng)建中級目錄。例如: 假設(shè) a 不 存在,那么: mkdir abcd 與:mkdir a chdir a mkdir b chdir b mkdir c chdir c mkdir d 相同。如果擴(kuò)展被停用,則需要鍵入 mkdir abcd。 20.2 md舉例 ①md abcd 創(chuàng)建多級目錄 《Photoshop批處理》微課教學(xué)設(shè)計(jì) 課前導(dǎo)讀 主要介紹“動作”調(diào)板的功能和使用方法,一張圖片的添加水印和對圖像對比度、亮度的處理以及批處理圖像操作及應(yīng)用。通過對本課的學(xué)習(xí),利用Photoshop動作和自動化處理功能、記錄與播放命令,批量處理圖像,能夠快速處理圖像和設(shè)計(jì),從而提高圖像處理的效率。 學(xué)習(xí)目標(biāo) 1、掌握Photoshop中動作與批處理的概念,掌握“動作”調(diào)板功能和使用方法。 2、掌握Photoshop圖像自動化處理技巧,用動作設(shè)計(jì)各種圖像效果,掌握批處理命令的使用方法。 操作過程 一、首先回顧一下上節(jié)課所講的一張圖片的添加水印效果和對圖像對比度、亮度的處理,然后具體講解批處理的原理以及過程,并利用學(xué)校網(wǎng)站添加水印圖片為例,講解具體的過程,并制作動作命令 a)介紹調(diào)用“動作”面板的三種方法 b)具體操作如何通過“動作面板”錄制批處理的過程。 1.打開Photoshop,選中“窗口→動作”命令,打開動作命令窗口。此時(shí),動作命令欄里只有默認(rèn)命令序列和一些默認(rèn)動作。 2.單擊動作命令欄“創(chuàng)建新動作”快捷命令圖標(biāo),此時(shí)就會在“默認(rèn)動作”的序列下創(chuàng)建新動作,出現(xiàn)的命令對話框,在“名稱”欄中輸入自己想要的動作名稱pcl,然后單擊“記錄”按鈕,記錄開始。 3.開始創(chuàng)建各項(xiàng)需要的動作,計(jì)算機(jī)會自動記錄你的各個(gè)動作,這里舉個(gè)我們學(xué)校網(wǎng)站上傳圖片的要求進(jìn)行處理圖片、(要求:像素大小1024*768,圖片明亮清晰,有學(xué)校的水印logo)這個(gè)自動調(diào)整圖片對比度并縮小圖片的例子: ? 點(diǎn)擊“圖像→圖像大小”,在對話框里設(shè)置圖像高度、寬度的大小,我們這里把寬度設(shè)為1024像素,高度768像素大小; ? 點(diǎn)擊“圖像→調(diào)整→亮度/對比度”,將會出現(xiàn)調(diào)整圖片亮度30,對比度20,使圖片變亮; ? 添加水印效果,在水印圖片上ctrl+a 全選圖片,ctrl+c復(fù)制圖片,在需要添加水印效果的圖片上ctrl+v粘貼,然后調(diào)節(jié)水印的位置以及大小。 ? 點(diǎn)擊“文件→存儲為”,然后在對話框中選擇保存圖片的位置; ? 最后關(guān)閉圖片; 4.單擊動作命令欄下方的“停止”按鈕停止記錄。這時(shí)我們需要的動作命令制作完畢。 二、用自動批處理命令處理圖片 1、先做準(zhǔn)備工作:把所有待處理的圖片放到一個(gè)文件夾里,新建一個(gè)文件夾用來放置處理過的圖片。執(zhí)行“文件→自動→批處理”打開批處理命令框。 1、接著設(shè)置各個(gè)參數(shù)和選項(xiàng): (1)在“動作”下拉菜單中選擇“pcl”。 (2)在“源”下拉菜單中選擇“文件夾”。 (3)單擊“選取”按鈕在彈出的對話框中選擇待處理的圖片所在的文件夾,單擊“確定”。 (4)在“目的”下拉菜單中選擇“文件夾”,單擊“選擇”按鈕,在彈出的對話框中選擇準(zhǔn)備放置處理好的圖片的文件夾,單擊“確定”。 (5)在“文件命名”的第一個(gè)框的下拉菜單中選擇“文檔名稱”。 (6)在“錯(cuò)誤”下拉菜單中選擇“因錯(cuò)誤而停止”,單擊“另存為”選擇一個(gè)文件夾。批處理若中途出了問題,計(jì)算機(jī)會記錄錯(cuò)誤的細(xì)節(jié),并停止。 這一切做好,檢查無誤之后,單擊“確定”,計(jì)算機(jī)就會開始一張一張地打開處理和保存那些我們選中的圖片,直到任務(wù)結(jié)束。我們耐心的等待圖片處理的過程。 小結(jié) 回顧總結(jié),讓同學(xué)們在學(xué)習(xí)ps中遇到什么問題要認(rèn)真用心,有耐心,讓他們有什么應(yīng)用的技巧和方法去分享。 dos 批處理命令(forfiles) Windows Server 2003內(nèi)置的命令行文件,不適合于XP系統(tǒng) 1.用批處理文件刪除當(dāng)前目錄下 7 天以前的擴(kuò)展名為bkf文件(以當(dāng)前系統(tǒng)時(shí)間為基準(zhǔn)) 示例: forfiles /m *.bkf /d-7 /c “cmd /c del @file /f” 2.forfiles 自動刪除7天前文件(以當(dāng)前系統(tǒng)時(shí)間為基準(zhǔn)) 示例: forfiles /p “d:test” /s /m *.* /d-7 /c “cmd /c del @path” d:test換成你要的目錄路徑;/d-7 指刪除7天以前文件。 3.刪除所有的空目錄(以刪除d:test目錄下為例): dir /ad/b/s d:test |sort /r >d:kill.txt For /f “tokens=*” %%i in(d:kill.txt)DO rd “%%i” del d:kill.txt 4.先刪7 天以前文件,再刪所有的空目錄;把以下復(fù)制到bat文件中。@echo off forfiles /p “d:test” /s /m *.* /d-7 /c “cmd /c del @path” dir /ad/b/s d:test |sort /r >d:kill.txt For /f “tokens=*” %%i in(d:kill.txt)DO rd “%%i” del d:kill.txt 5.forfiles 命令的用法及參數(shù): forfiles /p <目標(biāo)目錄名> /d <天數(shù)> /c <執(zhí)行的命令> /p 指定了要在哪個(gè)目錄里查找文件,默認(rèn)是當(dāng)前工作目錄。 /d 指定一個(gè)日期或天數(shù),用于比較文件的最后修改日期是否符合條件。/c 對每個(gè)找到的文件執(zhí)行的命令。 例1.要把在C盤根目錄下最后修改日期大于或等于2010年1月7日的文件復(fù)制到D盤根目錄下: forfiles /p “c:” /d “2007-7-1” /c “cmd /c copy @path d:” 例2.刪除在C盤backup目錄下最后修改日期在10天前的文件: forfiles /p “c:backup” /d-10 /c “cmd /c echo deleting @file...&& del /f @path” 6.forfiles /p 包含要?jiǎng)h除文件的完整路徑(如:F:Logfiles)/m *.log-d-7 /c “cmd /c del /f @path” 解釋一下相關(guān)參數(shù)及命令 /p : 指定開始搜索文件的位置,如果不指定則默認(rèn)為當(dāng)前目錄。/m 如“manmee_*.log”這樣以manmee開頭的所有日志文件。如果不指定此參數(shù)則默認(rèn)為“*.*”。 /d [{+|-}][{ 天為基礎(chǔ),7天以前的文件。當(dāng)然這里還可以指定具體時(shí)間,例如:“/d-01/7/2010”這樣所有早于2010年 1月7日的文件。注意指定的時(shí)間必須是“MM/DD/YYYY”的格式。 /c 對所有文件以此執(zhí)行指定的命令,命令體須在雙引號(“)內(nèi),默認(rèn)是”cmd /c echo @file“。上文中用 到的是”cmd /c del /f @path“刪除指定文件。(這里的@file 和 @path 為變量,下文中將解釋。) 下面說一下上文中用到的參數(shù): @PATH : 表示文件的完整的路徑。 @File : 表示文件名稱。 接下來我們看看刪除文件夾的操作,如果你看了上面的介紹,相信這命令你一看就能看懂。 forfiles /p 包含文件夾的路徑(如:F:)/m 文件夾名稱(如:LogFiles)-d 0 /c ”cmd /c if @ISDIR == true rd /s/q @path“ 注意這里的”包含文件夾的路徑“不能包含要?jiǎng)h除的文件夾,如以上代碼所表示的就是,在F盤中查找名為 LogFiles的文件或文件夾(不能指定查找文件夾,不過在刪除時(shí)我們做了判斷)。還有就是這里出現(xiàn)了一個(gè)新的參數(shù)”@ISDIR“他用于判斷當(dāng)前文件類型是否是”文件夾類型“,如果是則為 true否則為false。 相信到這大家就明白了,最后再將代碼保存為批處理文件,然后加入計(jì)劃任務(wù)定期執(zhí)行即可。 看了上面的例子,覺得在 Windows Server 2003 下面要?jiǎng)h除老文件很簡單吧。但如果操作系統(tǒng)是 Windows 2000/XP 就比較麻煩,因?yàn)樗鼈儧]有forfiles命令,只能靠自己寫批處理來 實(shí)現(xiàn)了。 下面是我寫的批處理文件內(nèi)容: @echo off rem ****************************** rem * 按時(shí)間刪除文件目錄的批處理 * rem ****************************** rem 設(shè)置臨時(shí)目錄的路徑 set tempDir=%tmp%remove_%date:~0,10% if not exist %tempDir% md %tempDir% rem 設(shè)置處理日期的腳本文件的路徑 set scriptFile=%tempDir%get_date.vbs rem 獲得要保留的天數(shù) set days=%~1 if ”%days%“ == ”“ goto printUsage rem 獲得目標(biāo)目錄的路徑 set dirPath=%~2 if ”%dirPath%“ == ”“ set dirPath=.rem 獲得要操作的文件形式 set fileSpec=%~3 if ”%fileSpec%“ == ”“ set fileSpec=*.* rem 生成計(jì)算日期的腳本文件并獲得刪除的截止日期 echo d=date()-%1 > %scriptFile% echo s=right(”0000“ ^& year(d),4)^& ”-“ ^& right(”00“ ^& month(d),2)^& ”-“ ^& right(”00“ ^& day(d),2)>> %scriptFile% echo wscript.echo s >> %scriptFile% for /f %%i in('cscript /nologo %scriptFile%')do set lastDate=%%i rem 處理目標(biāo)目錄里的每個(gè)對象 for /f ”tokens=1,2,3* delims=<> “ %%i in('dir ”%dirPath%%fileSpec%“ /a /-c /tc')do call :proc ”%%i“ ”%%j“ ”%%k“ ”%%l“ goto :done rem 處理目標(biāo)目錄里對象的過程 :proc rem 獲得對象的創(chuàng)建日期并判斷是否為有效格式 set fileDate=%~1 echo %fileDate% | findstr ”[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]“ > nul if errorlevel 1 goto end rem 獲得對象的類型 set fileType=%~3 if ”%fileType%“ == ”“ goto end rem 獲得對象的名稱 set fileName=%~4 if ”%fileName%“ == ”“ goto end if ”%fileName%“ == ”.“ goto end if ”%fileName%“ == ”..“ goto end if ”%fileName%“ == ”字節(jié)“ goto end if ”%fileName%“ == ”可用字節(jié)“ goto end rem 判斷對象日期是否小于或等于刪除的截止日期 if ”%fileDate:~0,10%“ leq ”%lastDate%“(echo deleting ”%fileName%“...if ”%fileType%“ == ”DIR“(rd /s /q ”%dirPath%%fileName%“)else(del /q /f ”%dirPath%% fileName%")) goto end :error echo An error occurred during backuping.:done rd /s /q %tempDir% goto end :printUsage echo Usage: %0 ^ goto end :end 主要是利用Windows的腳本功能來計(jì)算要?jiǎng)h除文件的截止日期,然后for加dir命令來提取文件的日期進(jìn)行 判斷。 關(guān)于forfiles和for的詳細(xì)信息,可以在Windows的幫助與支持中找到。第三篇:Windows批處理命令總結(jié)詳解
第四篇:_《Photoshop批處理》微課教學(xué)設(shè)計(jì) _
第五篇:dos 批處理命令_forfiles