第一篇:批處理練習(xí)題
批處理實現(xiàn)兩文本同行交替輸出
有兩個文本如下(實際中并不知道兩文本各有多少行): 文本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é)窗口大小,不生成臨時文件,居中顯示文本內(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 先打個比方:如果你家來了客人,你媽媽給你2元錢到商店買1瓶啤酒給客人喝。結(jié)果客人不夠喝,你媽怕浪費,又給你2元錢讓你下樓再去買1瓶,結(jié)果又不夠喝,又讓你下樓再買1瓶,還不夠,再讓你買一瓶……這時你可能會怎么說?你肯定會不耐煩地回答:媽,拜托你,別讓我每次1瓶1瓶的買,1次多買幾瓶不就行了嗎? 我們執(zhí)行SQL語句同樣如此,因為SQL Server是網(wǎng)絡(luò)數(shù)據(jù)庫,一臺服務(wù)器可能有很多遠程客戶端,如果在客戶端一次發(fā)送1條SQL語句,然后客戶返回結(jié)果;然后再發(fā)送1條SQL語句,再返回,效率太低了。所以為了提高效率,SQL Server就引出了批處理的概念。 ?批處理是包含一個或多個 SQL 語句的組,從應(yīng)用程序一次性地發(fā)送到SQL Server執(zhí)行 ?SQL Server 將批處理語句編譯成一個可執(zhí)行單元,此單元稱為執(zhí)行計劃。執(zhí)行計劃中的語句 每次執(zhí)行一條 SELECT * FROM stuInfo SELECT * FROM stuMarks UPDATE stuMarks SET writtenExam=writtenExam+2 GO ?GO是批處理的標志,表示SQL Server將這些T-SQL語句編譯為一個執(zhí)行單元,提高執(zhí)行效 率 ?一般是將一些邏輯相關(guān)的業(yè)務(wù)操作語句,放置在同一批中,這完全由業(yè)務(wù)需求和代碼編寫者決定 ?SQLServer規(guī)定:如果是建庫、建表語句、以及我們后面學(xué)習(xí)的存儲過程和視圖等,則必須在語句末尾添加 GO 批處理標志 如何批處理拷貝文件和文件夾 經(jīng)常做數(shù)據(jù)備份的人很清楚,如果是少量數(shù)據(jù)或文件,簡單復(fù)制即可,可是要是大量數(shù)據(jù)的話,再用這種方法,則費力費時,那么如何批處理拷貝文件和文件夾,可以用xcopy實現(xiàn),例如: C:>xcopy C:ppt*.* D:ppt /s /e 這條命令的意思就是把C盤下的PPT文件夾全部拷貝到D盤 XCOPY 還有眾多的功能,是加參數(shù)來完成的。上面的/s /e 參數(shù)的作用分別是把子目錄和空目錄都復(fù)制過去,一些使用舉例和參數(shù)說明如下: 1、如只是單純地復(fù)制 E: 盤上所有文件到 D: 盤上,就輸入“ xcopy e:*.* d: /s /h “就行啦!如果在復(fù)制過程中,你不要他復(fù)制文件啦!那就按鍵盤熱鍵“Ctrl ” +“Pause /break” 二個熱鍵 來中斷復(fù)制。 2、如果想把E: 盤上所有文件復(fù)制到D:盤上,分為今天復(fù)制一點,明天再接著復(fù)制一些,后天再接著復(fù)制一些?;蛘呤悄撤N原因上次沒有復(fù)制完成,今天想接著復(fù)制。(這種情況是經(jīng)常在復(fù)制文件中出現(xiàn)的)那可怎么辦才好呢? 那就輸入“ xcopy e:*.* d: /s /h /d /y ”就行啦。他能查出那些文件是已經(jīng)復(fù)制過去啦,那些文件還沒有復(fù)制過去的。 3、當(dāng)然我們也會碰到這種情況,一些文件我們已經(jīng)修改過啦!網(wǎng)上面又有最新版本的啦。原來備份的那份文件我們要及時更新啦。那怎么才能同步更新呢?當(dāng)然我們可以把最新的好份文件復(fù)制過去,這也是一種解決辦法。 如果修改的文件有很多的,自己到時候也記不清楚那份文件是更新過的。這么多的原來備份的那份文件都要更新,都要復(fù)制過去,可不是件省力氣的活,而且容易出錯和一些文件被忘記啦!那和上面一樣也同樣輸入“ xcopy e:*.* d: /s /h /d /y ”就行啦! 4、還有一種情況我們經(jīng)常也碰到的,因為復(fù)制某個文件出錯或者這個文件在使用中,而停止了復(fù)制工作,(比如,復(fù)制C 盤上的 windows xp)我們這時候想跳過某個出錯的文件和某個正在使用中文件而繼續(xù)復(fù)制其他文件。 在多加入一個參數(shù)“ /c ”就是 “ xcopy e:*.* d: /s /h /d /c /y ”就行啦! 5、有時候我們想XCOPY 變?yōu)樽詣訌?fù)制,并且復(fù)制完成后關(guān)閉電腦,可以建立一個批處理文件,新建文本文檔,更名為XCOPY.BAT 當(dāng)然擴展名原來是TXT 格式的要更名為BAT 在這個 XCOPY.BAT 中輸入 xcopy e:*.* d: /s /h /c /y shutdown-s 然后雙擊xcopy.bat 運行它,你這時候可以出去玩啦。電腦會自己復(fù)制備份完成文件然后自動關(guān)閉電腦。XCOPY source [destination] 參數(shù)(如 /s /e)source 指定要復(fù)制的文件。 destination 指定新文件的位置和/或名稱。/A 只復(fù)制有存檔屬性集的文件,但不改變屬性。 /M 只復(fù)制有存檔屬性集的文件,并關(guān)閉存檔屬性。 /D:m-d-y 復(fù)制在指定日期或指定日期以后改變的文件。如果沒有提供日期,只復(fù)制那些源時間 比目標時間新的文件。/EXCLUDE:file1[+file2][+file3]...指定含有字符串的文件列表。如果有任何 字符串與要被復(fù)制的文件的絕對路徑 相符,那個文件將不會得到復(fù)制。 例如,指定如 obj 或.obj 的字符串會排除 目錄 obj 下面的所有文件或帶有.obj 擴展名的文件。 /P 創(chuàng)建每個目標文件前提示。/S 復(fù)制目錄和子目錄,除了空的。/E 復(fù)制目錄和子目錄,包括空的。與 /S /E 相同??梢杂脕硇薷?/T。/V 驗證每個新文件。/W 提示您在復(fù)制前按鍵。/C 即使有錯誤,也繼續(xù)復(fù)制。 /I 如果目標不存在,又在復(fù)制一個以上的文件,則假定目標一定是一個目錄。/Q 復(fù)制時不顯示文件名。 /F 復(fù)制時顯示完整的源和目標文件名。/L 顯示要復(fù)制的文件。 /G 允許將沒有經(jīng)過加密的文件復(fù)制到 不支持加密的目標。/H 也復(fù)制隱藏和系統(tǒng)文件。/R 改寫只讀文件。 /T 創(chuàng)建目錄結(jié)構(gòu),但不復(fù)制文件。不 包括空目錄或子目錄。/T /E 包括 空目錄和子目錄。 /U 只復(fù)制已經(jīng)存在于目標中的文件。 /K 復(fù)制屬性。一般的 Xcopy 會重設(shè)只讀屬性。/N 用生成的短名復(fù)制。 /O 復(fù)制文件所有權(quán)和 ACL 信息。/X 復(fù)制文件審核設(shè)置(隱含 /O)。/Y 禁止提示以確認改寫一個 現(xiàn)存目標文件。 /-Y 導(dǎo)致提示以確認改寫一個 現(xiàn)存目標文件。 /Z 用重新啟動模式復(fù)制網(wǎng)絡(luò)文件。 Xcopy 復(fù)制文件和目錄,包括子目錄。語法 xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z] 參數(shù) Source 必需的。指定要復(fù)制的文件的位置和名稱。該參數(shù)必須包含驅(qū)動器或路徑。Destination 指定要復(fù)制的文件的目標。該參數(shù)可以包含驅(qū)動器盤符和冒號、目錄名、文件名或者它們的組合。/w 在開始復(fù)制文件之前將顯示以下消息并等待您的響應(yīng): Press any key to begin copying file(s)/p 提示您確認是否要創(chuàng)建每個目標文件。/c 忽略錯誤。/v 在寫入目標文件時驗證每個文件,以確保目標文件與源文件完全相同。/q 禁止顯示 xcopy 消息。/f 復(fù)制時顯示源文件名和目標文件名。/l 顯示要復(fù)制的文件列表。/g 創(chuàng)建解密的目標文件。/d[:mm-dd-yyyy] 只復(fù)制那些在指定日期或指定日期之后更改過的源文件。如果不包括 mm-dd-yyyy 值,xcopy 會復(fù)制比現(xiàn)有 Destination 文件新的所有 Source 文件。該命令行選項使您可以更新更改過的文件。/u 只從 source 復(fù)制 destination 中已有的文件。/i 如果 Source 是一個目錄或包含通配符,而 Destination 不存在,xcopy 會假定 destination 指定目錄名并創(chuàng)建一個新目錄。然后,xcopy 會將所有指定文件復(fù)制到新目錄中。默認情況下,xcopy 將提示您指定 destination 是文件還是目錄。/s 復(fù)制非空的目錄和子目錄。如果省略 /s,xcopy 將在一個目錄中工作。/e 復(fù)制所有子目錄,包括空目錄。同時使用 /e、/s 和 /t 命令行選項。/t 只復(fù)制子目錄結(jié)構(gòu)(即目錄樹),不復(fù)制文件。要復(fù)制空目錄,必須包含 /e 命令行選項。/k 復(fù)制文件,如果源文件具有只讀屬性,則在目標文件中保留該屬性。默認情況下,xcopy 會刪除只讀屬性。/r 復(fù)制只讀文件。/h 復(fù)制具有隱藏和系統(tǒng)文件屬性的文件。默認情況下,xcopy 不復(fù)制隱藏或系統(tǒng)文件。/a 只復(fù)制那些具有存檔文件屬性設(shè)置的源文件。/a 不修改源文件的存檔文件屬性。有關(guān)如何通過使用 attrib 來設(shè)置存檔文件屬性的信息,請參閱“”。/m 復(fù)制具有存檔文件屬性設(shè)置的源文件。與 /a 不同,/m 關(guān)閉在源中指定的文件的存檔文件屬性。有關(guān)如何通過使用 attrib 來設(shè)置存檔文件屬性的信息,請參閱“”。/n 使用 NTFS 短文件或目錄名創(chuàng)建副本。將文件或目錄從 NTFS 卷復(fù)制到 FAT 卷或者當(dāng)目標文件系統(tǒng)需要 FAT 文件系統(tǒng)命名約定(即 8.3 個字符)時,需要 /n。目標文件系統(tǒng)可以是 FAT 或 NTFS。/o 復(fù)制文件所有權(quán)與自由選擇的訪問控制列表(DACL)信息。/x 復(fù)制文件審核設(shè)置和系統(tǒng)訪問控制列表(SACL)信息(包含 /o)。 /exclude:filename1[+[filename2]][+[filename3]] 指定包含字符串的文件列表。/y 禁止提示您確認要覆蓋現(xiàn)存的目標文件。/-y 提示您確認要覆蓋現(xiàn)有目標文件。/z 在可重啟模式中通過網(wǎng)絡(luò)復(fù)制。/? 在命令提示符顯示幫助。注釋 使用 /v XOX 使用 /exclude 列出每個文件的單獨行中的每個字符串。如果列出的任何字符串與要復(fù)制的文件的絕對路徑的任何部分匹配,就從復(fù)制進程排除該文件。例如,如果指定字符串 “Obj”,則會排除 Obj 目錄下的所有文件。如果指定字符串 “.obj”,則排除具有.obj 擴展名的所有文件。使用 /z 如果在復(fù)制過程中丟失連接(例如,如果用于連接的服務(wù)器脫機),復(fù)制過程將在重新建立連接后恢復(fù)。/z 也顯示每個文件完成的復(fù)制操作的百分比。在 COPYCMD 環(huán)境變量中使用 /y 可在 COPYCMD 環(huán)境變量中使用 /y。在命令行上使用 /-y 可以覆蓋該命令。默認情況下,會提示您覆蓋,除非您從批處理腳本內(nèi)運行 copy。復(fù)制加密的文件 將加密文件復(fù)制到不支持 EFS 的卷會導(dǎo)致錯誤。應(yīng)首先解密文件或?qū)⑽募?fù)制到支持 EFS 的卷中。附屬文件 要附加文件,請指定單個目標文件,多個源文件(使用通配符或文件 1 + 文件 2 + 文件 3 格式)。Destination 的默認值 如果省略 Destination,xcopy 命令將文件復(fù)制到當(dāng)前目錄。指定 Destination 是文件還是目錄 如果 Destination 不包含現(xiàn)有目錄且不以反斜杠()結(jié)尾,會出現(xiàn)下列消息: Does destination specify a file name or directory name on the target(F = file, D = directory)? 如果要將一個或多個文件復(fù)制到一個文件,請按 F。如果要將一個或多個文件復(fù)制到一個目錄,請按 D。使用 /i 命令行選項可抑制顯示該消息,從而導(dǎo)致 xcopy 認定在源是多個文件或一個目錄的情況下,目標是一個目錄。 使用 xcopy 命令設(shè)置 Destination 文件的存檔屬性 xcopy 命令創(chuàng)建具有存檔屬性設(shè)置的文件,無論源文件中是否設(shè)定了此屬性。有關(guān)文件屬性和 attrib 的詳細信息,請參閱“”。比較 xcopy 和 diskcopy 如果磁盤的子目錄中包含文件,要將其復(fù)制到具有不同格式的磁盤中,請使用 xcopy 命令,而不要使用 diskcopy。因為 diskcopy 命令是一個磁道接一個磁道地復(fù)制磁盤,所以需要源磁盤和目標磁盤的格式必須相同。xcopy 命令沒有該要求。通常情況下請使用 xcopy,除非您需要完整的磁盤圖像副本。xcopy 的退出碼 要處理 xcopy 返回的退出碼,請在批處理程序的 if 命令行上使用 errorlevel 參數(shù)。有關(guān)使用“if”處理退出碼的批處理程序的范例,請參閱“”。下表列出每一個退出碼和說明。 退出碼說明 0 文件復(fù)制沒有錯誤。1 沒有找到要復(fù)制的文件。2 用戶按 CTRL+C 終止了 xcopy。4 出現(xiàn)了初始化錯誤。沒有足夠的內(nèi)存或磁盤空間,或命令行上輸入了無效的驅(qū)動器名稱或語法。5 出現(xiàn)了磁盤寫入錯誤。范例 要從驅(qū)動器 A 將所有文件和子目錄(包括所有空的子目錄)復(fù)制到驅(qū)動器 B,請鍵入: xcopy a:b:/s /e 要包含上一示例中的任何系統(tǒng)或隱藏文件,請按如下所示添加 /h 命令行選項: xcopy a:b:/s /e /h 要使用 Rawdata 目錄中 1993 年 12 月 29 日后更改的文件更新 Reports 目錄中的文件,請鍵入: xcopy rawdata reports /d:12-29-1993 要更新上例中 Reports 中存在的所有文件,而不考慮日期,請鍵入: xcopy rawdata reports /u 如果只想獲得前一個命令要復(fù)制的文件列表,而不復(fù)制文件,請鍵入: xcopy rawdata reports /d:12-29-1993 /l > xcopy.out 文件 Xcopy.out 列出了要復(fù)制的所有文件。 要將 Customer 目錄和所有子目錄復(fù)制到網(wǎng)絡(luò)驅(qū)動器 H: 上的目錄 PublicAddress,保留只讀屬性,并在 H: 上創(chuàng)建新文件時對您做出提示,請鍵入: xcopy customer h:publicaddress /s /e /k /p 要發(fā)出上一個命令,確保在 Address 目錄不存在時 xcopy 會創(chuàng)建該目錄,同時應(yīng)抑制顯示創(chuàng)建新目錄時要顯示的消息,請按如下所示添加 /i 命令行選項: xcopy customer h:publicaddress /s /e /k /p /i 可以創(chuàng)建批處理程序執(zhí)行 xcopy 操作,并且使用 if 批處理命令在發(fā)生錯誤時處理退出碼。例如,以下的批處理程序使用可替換的 xcopy 源和目標參數(shù): @echo off rem COPYIT.BAT transfers all files in all subdirectories of rem the source drive or directory(%1)to the destination rem drive or directory(%2)xcopy %1 %2 /s /e if errorlevel 4 goto lowmemory if errorlevel 2 goto abort if errorlevel 0 goto exit :lowmemory echo Insufficient memory to copy files or echo invalid drive or command-line syntax.goto exit :abort echo You pressed CTRL+C to end the copy operation.goto exit :exit 要使用該批處理程序?qū)?C:Prgmcode 目錄和其子目錄中的所有文件復(fù)制到驅(qū)動器 B 中,請鍵入: copyit c:prgmcode b: 該命令解釋程序?qū)⒂?C:Prgmcode 替換 %1 與 B:。對于 %2,然后使用 xcopy 與 /e 和 /s 命令行選項。如果 xcopy 遇到錯誤,批處理程序?qū)⒆x取退出碼并轉(zhuǎn)到相應(yīng) IF ERRORLEVEL 語句中指示的標簽,然后顯示相應(yīng)的消息并退出批處理程序。 可以在批處理文件內(nèi)的任何地方使用批處理參數(shù),以提取有關(guān)環(huán)境設(shè)置的信息。 Cmd.exe 提供批處理參數(shù)擴展變量(%0 到 %9)。在批處理文件中使用批處理參數(shù)時,%0 將由批處理文件名替換,而 %1 到 %9 將由在命令行鍵入的相應(yīng)參數(shù)替換。要訪問超出 %9 的參數(shù),必須使用 shift 命令。有關(guān) shift 命令的詳細信息,請參閱 Shift。%* 批處理參數(shù)是傳遞到批處理文件中的所有參數(shù)(不包括 %0)的通配符引用。 例如,要將 Folder1 中的內(nèi)容復(fù)制到 Folder2,其中 %1 和 %2 將分別由值 Folder1 和 Folder2 替換,請在批處理文件 Mybatch.bat 中鍵入如下內(nèi)容: xcopy %1*.* %2 要運行該文件,請鍵入: mybatch.bat C:folder1 D:folder2 這與在批處理文件中鍵入如下內(nèi)容是等效的: xcopy C:folder1 *.* D:folder2 也可以在批處理參數(shù)中使用修改符。修改符使用當(dāng)前的驅(qū)動器和目錄信息將批處理參數(shù)作為部分或完整的文件或目錄名進行擴展。要使用修改符,請鍵入百分號(%)字符,后面是波形符號(~)字符,然后鍵入合適的修改符(即 %~modifier)。下表列出了可在擴展中使用的修改符。 修飾符 描述 %~1 擴展 %1 并刪除任何外圍引號("")。 %~f1 將 %1 擴展到完全限定的路徑名。 %~d1 將 %1 擴展到驅(qū)動器盤符。 %~p1 將 %1 擴展到路徑。 %~n1 將 %1 擴展到文件名。 %~x1 將 %1 擴展到文件擴展名。 %~s1 擴展的路徑僅包含短名稱。 %~a1 將 %1 擴展到文件屬性。 %~t1 將 %1 擴展到文件日期和時間。 %~z1 將 %1 擴展到文件大小。 %~$PATH:1 搜索 PATH 環(huán)境變量中列出的目錄,并將 %1 擴展到第一個找到的目錄的完全限定名稱。如果沒有定義環(huán)境變量名稱,或沒有找到文件,則此修改符擴展成空字符串。 下表列出了可用于獲取綜合結(jié)果的修改符和限定符的可能組合情況: 修飾符 描述 %~dp1 將 %1 擴展到驅(qū)動器盤符和路徑。 %~nx1 將 %1 擴展到文件名和擴展名。 %~dp$PATH:1 在 PATH 環(huán)境變量列出的目錄中搜索 %1,并擴展到第一個找到的目錄的驅(qū)動器盤符和路徑。 %~ftza1 將 %1 擴展到類似 dir 的輸出行。 注意 ? 在上面的例子中,可以使用其他批處理參數(shù)值替換 %1 和 PATH。 %* 修改符是唯一可代表在批處理文件中傳遞的所有參數(shù)的修改符。不能將該修改符與 %~ 修改符組合使用。%~ 語法必須通過有效的參數(shù)值來終止。 不能以與使用環(huán)境變量相同的方式使用批處理參數(shù)。不能搜索和替換值,或檢查子字符串。但是,可以將參數(shù)分配給環(huán)境變量,然后對該環(huán)境變量進行操作。 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 定向到批處理程序中帶標簽的行。 GOTO label label 指定批處理程序中用作標簽的文字字符串。標簽必須單獨一行,并且以冒號打頭。如果命令擴展被啟用,GOTO 會如下改變: GOTO 命令現(xiàn)在接受目標標簽 :EOF,這個標簽將控制轉(zhuǎn)移到當(dāng)前批腳本文件的結(jié)尾。不定義就退出批腳本文件,這是一個容易的辦法。有關(guān)能使該功能有用的 CALL 命令的擴展描述,請鍵入CALL /?。 4.2 goto舉例 ①命令行如下 執(zhí)行結(jié)果如下 命令:call 5.1 call含義 從批處理程序調(diào)用另一個批處理程序。 CALL [drive:][path]filename [batch-parameters] batch-parameters 指定批處理程序所需的命令行信息。如果命令擴展被啟用,CALL 會如下改變: CALL 命令現(xiàn)在將卷標當(dāng)作 CALL 的目標接受。語法是:CALL:label arguments 一個新的批文件上下文由指定的參數(shù)所創(chuàng)建,控制在卷標被指定后傳遞到語句。你必須通過達到批腳本文件末兩次來 “exit” 兩次。第一次讀到文件末時,控制會回到 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 如果最后運行的程序返回一個等于或大于指定數(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舉例 ①字符串匹配判斷和文件是否存在判斷(既可以為相對路徑,也可以為絕對路徑)比較運算符 比較運算符有以下幾種: EQU不等于 LSS小于或等于 GTR大于或等于 命令:for 8.1 for含義 對一組文件中的每一個文件執(zhí)行某個特定命令。 FOR %variable IN(set)DO command [command-parameters] %variable 指定一個單一字母可替換的參數(shù)。 (set) 指定一個或一組文件。可以使用通配符。 command 指定對每個文件執(zhí)行的命令。 command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。在批處理程序中使用 FOR 命令時,指定變量請使用 %%variable 而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I.如果啟用命令擴展,則會支持下列 FOR 命令的其他格式: FOR /D %variable IN(set)DO command [command-parameters] 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。FOR /R [[drive:]path] %variable IN(set)DO command [command-parameters] 檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的 FOR 語句。 如果在 /R 后沒有指定目錄規(guī)范,則使用當(dāng)前目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。 FOR /L %variable IN(start,step,end)DO command [command-parameters] 該集表示以增量形式從開始到結(jié)束的一個數(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含義 重新打開一個窗口或執(zhí)行程序,并根據(jù)參數(shù)執(zhí)行相應(yīng)命令 10.2 start舉例 ①start notepad++ 打開notepad++程序 ②start “這是新的cmd窗口” echo 在第二個窗口執(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è)置運算表達式 命令:choice 12.1 choice含義 CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述:該工具允許用戶從選擇列表選擇一個項目并返回所選項目的索引。參數(shù)列表: /C choices 指定要創(chuàng)建的選項列表。默認列表是 “YN”。 /N 在提示符中隱藏選項列表。提示前面的消息得到顯示,選項依舊處于啟用狀態(tài)。 /CS 允許選擇分大小寫的選項。在默認情況下,這個工具 是不分大小寫的。 /T timeout 做出默認選擇之前,暫停的秒數(shù)??山邮艿闹凳菑?0 到 9999。如果指定了 0,就不會有暫停,默認選項 會得到選擇。 /D choice 在 nnnn 秒之后指定默認選項。字符必須在用 /C 選 項指定的一組選擇中;同時,必須用 /T 指定 nnnn。 /M text 指定提示之前要顯示的消息。如果沒有指定,工具只 顯示提示。 12.2 choice舉例 CHOICE /C YNC /M “確認請按 Y,否請按 N,或者取消請按 C。” CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M “選項 1 請選擇 a,選項 2 請選擇 b?!?CHOICE /C ab /N /M “選項 1 請選擇 a,選項 2 請選擇 b。” 13 命令:copy 13.1 copy含義 將一份或多份文件復(fù)制到另一個位置。 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+...]] [destination [/A | /B]] source 指定要復(fù)制的文件。 /A 表示一個 ASCII 文本文件。 /B 表示一個二進位文件。 /D 允許解密要創(chuàng)建的目標文件 destination 為新文件指定目錄和/或文件名。 /V 驗證新文件寫入是否正確。 /N 復(fù)制帶有非 8dot3 名稱的文件時,盡可能使用短文件名。 /Y 不使用確認是否要覆蓋現(xiàn)有目標文件的提示。 /-Y 使用確認是否要覆蓋現(xiàn)有目標文件的提示。 /Z 用可重新啟動模式復(fù)制已聯(lián)網(wǎng)的文件。 /L 如果源是符號鏈接,請將鏈接復(fù)制到目標而不是源鏈接指向的實際文件。 13.2 copy舉例 ①copy a.txt bak.txt 復(fù)制a.txt文件,命名為bak.txt,不能復(fù)制目錄下的文件并重命名 ②copy /b f:1.txt+2.txt f:3.txt 合并文件到一個新的文件 命令:move 14.1 move含義 移動文件并重命名文件和目錄。要移動至少一個文件: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 要重命名一個目錄: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 指定你想移動的文件位置和名稱。 destination 指定文件的新位置。目標可包含一個驅(qū)動器號 和冒號、一個目錄名或組合。如果只移動一個文件 并在移動時將其重命名,你還可以包括文件名。 [drive:][path]dirname1 指定要重命名的目錄。 dirname2 指定目錄的新名稱。 /Y 取消確認覆蓋一個現(xiàn)有目標文件的提示。 /-Y 對確認覆蓋一個現(xiàn)有目標文件發(fā)出提示。 14.2 move舉例 ①move 3.txt D:a.txt 文件移動并重命名 命令:del 15.1 del含義 刪除一個或數(shù)個文件。 DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names names 指定一個或多個文件或者目錄列表。通配符可用來刪除多個文件。 如果指定了一個目錄,該目錄中的所有文件都會被刪除。 /P 刪除每一個文件之前提示確認。 /F 強制刪除只讀文件。 /S 刪除所有子目錄中的指定的文件。 /Q 安靜模式。刪除全局通配符時,不要求確認 /A 根據(jù)屬性選擇要刪除的文件 屬性 R 只讀文件 S 系統(tǒng)文件 H 隱藏文件 A 存檔文件 I 無內(nèi)容索引文件 L 重分析點 表示“否”的前綴 /B 使用空格式(沒有標題信息或摘要)。 /C 在文件大小中顯示千位數(shù)分隔符。這是默認值。用 /-C 來 禁用分隔符顯示。 /D 跟寬式相同,但文件是按欄分類列出的。 /L 用小寫。 /N 新的長列表格式,其中文件名在最右邊。 /O 用分類順序列出文件。 排列順序 N 按名稱(字母順序) S 按大小(從小到大) E 按擴展名(字母順序) D 按日期/時間(從先到后) G 組目錄優(yōu)先 -反轉(zhuǎn)順序的前綴 /P 在每個信息屏幕后暫停。 /Q 顯示文件所有者。 /R 顯示文件的備用數(shù)據(jù)流。 /S 顯示指定目錄和所有子目錄中的文件。 /T 控制顯示或用來分類的時間字符域。 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 搜索字符串時忽略大小寫。 /OFF[LINE] 不要跳過具有脫機屬性集的文件。 “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 如果命令擴展被啟用,MKDIR 會如下改變: 如果需要,MKDIR 會在路徑中創(chuàng)建中級目錄。例如: 假設(shè) a 不 存在,那么: mkdir abcd 與:mkdir a chdir a mkdir b chdir b mkdir c chdir c mkdir d 相同。如果擴展被停用,則需要鍵入 mkdir abcd。 20.2 md舉例 ①md abcd 創(chuàng)建多級目錄 《Photoshop批處理》微課教學(xué)設(shè)計 課前導(dǎo)讀 主要介紹“動作”調(diào)板的功能和使用方法,一張圖片的添加水印和對圖像對比度、亮度的處理以及批處理圖像操作及應(yīng)用。通過對本課的學(xué)習(xí),利用Photoshop動作和自動化處理功能、記錄與播放命令,批量處理圖像,能夠快速處理圖像和設(shè)計,從而提高圖像處理的效率。 學(xué)習(xí)目標 1、掌握Photoshop中動作與批處理的概念,掌握“動作”調(diào)板功能和使用方法。 2、掌握Photoshop圖像自動化處理技巧,用動作設(shè)計各種圖像效果,掌握批處理命令的使用方法。 操作過程 一、首先回顧一下上節(jié)課所講的一張圖片的添加水印效果和對圖像對比度、亮度的處理,然后具體講解批處理的原理以及過程,并利用學(xué)校網(wǎng)站添加水印圖片為例,講解具體的過程,并制作動作命令 a)介紹調(diào)用“動作”面板的三種方法 b)具體操作如何通過“動作面板”錄制批處理的過程。 1.打開Photoshop,選中“窗口→動作”命令,打開動作命令窗口。此時,動作命令欄里只有默認命令序列和一些默認動作。 2.單擊動作命令欄“創(chuàng)建新動作”快捷命令圖標,此時就會在“默認動作”的序列下創(chuàng)建新動作,出現(xiàn)的命令對話框,在“名稱”欄中輸入自己想要的動作名稱pcl,然后單擊“記錄”按鈕,記錄開始。 3.開始創(chuàng)建各項需要的動作,計算機會自動記錄你的各個動作,這里舉個我們學(xué)校網(wǎng)站上傳圖片的要求進行處理圖片、(要求:像素大小1024*768,圖片明亮清晰,有學(xué)校的水印logo)這個自動調(diào)整圖片對比度并縮小圖片的例子: ? 點擊“圖像→圖像大小”,在對話框里設(shè)置圖像高度、寬度的大小,我們這里把寬度設(shè)為1024像素,高度768像素大小; ? 點擊“圖像→調(diào)整→亮度/對比度”,將會出現(xiàn)調(diào)整圖片亮度30,對比度20,使圖片變亮; ? 添加水印效果,在水印圖片上ctrl+a 全選圖片,ctrl+c復(fù)制圖片,在需要添加水印效果的圖片上ctrl+v粘貼,然后調(diào)節(jié)水印的位置以及大小。 ? 點擊“文件→存儲為”,然后在對話框中選擇保存圖片的位置; ? 最后關(guān)閉圖片; 4.單擊動作命令欄下方的“停止”按鈕停止記錄。這時我們需要的動作命令制作完畢。 二、用自動批處理命令處理圖片 1、先做準備工作:把所有待處理的圖片放到一個文件夾里,新建一個文件夾用來放置處理過的圖片。執(zhí)行“文件→自動→批處理”打開批處理命令框。 1、接著設(shè)置各個參數(shù)和選項: (1)在“動作”下拉菜單中選擇“pcl”。 (2)在“源”下拉菜單中選擇“文件夾”。 (3)單擊“選取”按鈕在彈出的對話框中選擇待處理的圖片所在的文件夾,單擊“確定”。 (4)在“目的”下拉菜單中選擇“文件夾”,單擊“選擇”按鈕,在彈出的對話框中選擇準備放置處理好的圖片的文件夾,單擊“確定”。 (5)在“文件命名”的第一個框的下拉菜單中選擇“文檔名稱”。 (6)在“錯誤”下拉菜單中選擇“因錯誤而停止”,單擊“另存為”選擇一個文件夾。批處理若中途出了問題,計算機會記錄錯誤的細節(jié),并停止。 這一切做好,檢查無誤之后,單擊“確定”,計算機就會開始一張一張地打開處理和保存那些我們選中的圖片,直到任務(wù)結(jié)束。我們耐心的等待圖片處理的過程。 小結(jié) 回顧總結(jié),讓同學(xué)們在學(xué)習(xí)ps中遇到什么問題要認真用心,有耐心,讓他們有什么應(yīng)用的技巧和方法去分享。第二篇:T-SQL批處理(模版)
第三篇:批處理拷貝文件和文件夾方式
第四篇:Windows批處理命令總結(jié)詳解
第五篇:_《Photoshop批處理》微課教學(xué)設(shè)計 _