導航:首頁 > 文件目錄 > win批處理讀取文件內容

win批處理讀取文件內容

發布時間:2023-08-26 10:14:11

㈠ Windows批處理-for命令詳解

摘自Windows XP的幫助文檔。

For對一組文件中的每個文件運行指定的命令。

語法

for {%variable|%%variable} in (set) do command [ CommandLineOptions]

參數

{%variable|%%variable}

必需。代表可替換的參數。使用 %variable 通過命令提示符執行 for 命令。使用 %%variable 在批處理文件中執行 for 命令。變數要區分大小寫,並且必須用 Alpha 值表示,例如,%A、%B 或 %C。

(set)

必需。指定要用指定命令處理的一個或多個文件、目錄、數值范圍以及文本字元串。需要括弧。

command

必需。指定要對包括在指定 (set) 中的每個文件、目錄、數值范圍以及文本字元串所執行的命令。

CommandLineOptions

指定要通過指定命令使用的任何命令行選項。

/?

在命令提示符顯示幫助。

注釋

使用 for

可以在批處理文件中或直接從命令提示符使用 for 命令。

使用批處理參數

下列屬性適用於 for 命令:

for 命令使用指定 set 中的每個文本字元串替換 %variable 或 %%variable,直到 command 處理所有文件為止。

記住,for variable名是區分大小寫、全局的,並且每次總共不超過 52 個是活動的。

要避免批處理參數從 %0 到 %9 混淆,對 variable 可以使用除數字 0 到 9 之外的任何字元。對於簡單的批處理文件,單個字元即可奏效,例如 %%f。

在復雜的批處理文件中可以使用 variable 的多個值來區分不同的可替換變數。

顯示一組文件

set 參數可以代表單個或多個文件組。可以使用通配符(即,* 和 ?)指定文件組。以下為有效文件組:

(*.doc)

(*.doc *.txt *.me)

(jan*.doc jan*.rpt feb*.doc feb*.rpt)

(ar??1991.* ap??1991.*)

在使用 for 命令時,set 中的第一個值代替 %variable 或 %%variable,然後由指定的命令處理該值。這一直會繼續下去,直到處理完與 set 值相對應的所有文件(或文件組)為止。

使用 in 和 do 關鍵字

In 和 do 不是參數,但必須將它們與 for 一起使用。如果省略其中任何一個關鍵字,就會出現錯誤消息。

使用 for 的其它形式

如果命令擴展名處於啟用狀態(即,默認設置),則支持 for 的下列其它形式:

僅為目錄

如果 set 包含通配符(* 和 ?),則為匹配 set 的每個目錄(而不是指定目錄中的文件組)而執行指定的 command。語法是:

for /D {%% | %}variable in (set) do command [CommandLineOptions]

遞歸

進入根目錄樹 [Drive:]Path,在樹的每個目錄中執行 for 語句。如果在 /R 後沒有指定目錄,則假定為當前目錄。如果 set 只是一個句號 (.),則只列舉目錄樹。語法是:

for /R [[Drive :]Path] {%% | %}variable in (set) do command [CommandLineOptions]

重復數值范圍

使用迭代變數設置起始值 (start#) ,然後一步步執行一系列設置范圍的值,直到該值超過設置的終止值 (end#)。/L 將通過對 start# 與 end# 進行比較,執行迭代變數。如果 start# 小於 end#,就會執行該命令。如果迭代變數超過 end#,則命令解釋程序退出此循環。也可以使用負 step# 以遞減數值的方式一步步執行此范圍內的值。例如,(1,1,5) 生成順序 1 2 3 4 5,而 (5,-1,1) 則生成順序 (5 4 3 2 1)。語法是:

for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]

重復和文件解析

使用文件解析過程處理命令輸出、字元串和文件內容。使用迭代變數定義要檢查的內容或字元串,以及使用各種 ParsingKeywords 選項進一步修改解析方式。使用 ParsingKeywords 令牌選項指定哪些令牌應該傳遞為迭代程序變數。注意:在沒有使用令牌選項時,/F 將僅檢查第一個令牌。

文件解析過程包括讀取輸出、字元串或文件內容、分成獨立的文本行及然後將每行解析成零個或更多個令牌。然後通過設置為令牌的迭代程序變數值,調用 for 循環。默認情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。跳過空行。語法的不同點為:

for /F ["ParsingKeywords"] {%% | %}variable in (filenameset) do command [CommandLineOptions]

for /F ["ParsingKeywords"] {%% | %}variable in ("LiteralString") do command [CommandLineOptions]

for /F ["ParsingKeywords"] {%% | %}variable in ('command') do command [CommandLineOptions]

filenameset 參數指定一個或多個文件名稱。在繼續到 filenameset 中的下一個文件之前,每個文件都會被打開、讀取和處理。要覆蓋默認解析行為,指定 "ParsingKeywords"。這是一個引用字元串,它包含一個或多個關鍵字以指定不同的解析選項。

如果使用 usebackq 選項,請使用如下語法之一:

for /F ["usebackqParsingKeywords"] {%% | %}variable in ("filenameset") do command [CommandLineOptions]

for /F ["usebackqParsingKeywords"] {%% | %}variable in ('LiteralString') do command [CommandLineOptions]

for /F ["usebackqParsingKeywords"] {%% | %}variable in (`command`) do command [CommandLineOptions]

下表列出可以用於 ParsingKeywords 的解析關鍵字。

關鍵字 說明

eol=c 指定行尾字元(只一個字元)。

skip=n 指定在文件的開頭跳過的行數。

delims=xxx 指定定界符集合。這將替換空格和製表符的默認分隔符集。

tokens=x,y,m-n 指定將哪些令牌從每行傳遞到每個迭代的 for 正文。結果就分配了附加變數名稱。m-n 格式是一個范圍,指定從 mth 到 nth 的令牌。如果 tokens=字元串中最後一個字元是星號 (*),則將分配附加的變數,並在解析的最後一個令牌後在行上接收剩餘的文本。

usebackq 指定可以使用引號引用 filenameset 中的文件名稱,將後面帶有引號的字元串作為一個命令執行,而帶有單引號的字元串是文字字元串命令。

變數替換

已經增強了 for 變數引用的替換修改程序。下表列出可選語法(對於任意變數 I)。

帶有修改程序的變數 說明

%~I 展開刪除任何前後引號 ("") 的 %I。

%~fI 將 %I 展開到完全合格的路徑名。

%~dI 只將 %I 展開到驅動器號。

%~pI 只將 %I 展開到路徑。

%~nI 只將 %I 展開到文件名

%~xI 只將 %I 展開到文件擴展名。

%~sI 展開路徑以只包含短名稱。

%~aI 將 %I 展開到文件的文件屬性。

%~tI 將 %I 展開到文件的日期和時間。

%~zI 將 %I 展開到文件大小。

%~$PATH:I 搜索 PATH 環境變數所列出的目錄,並將 %I 展開到第一個找到的完全合格的名稱。如果沒有定義環境變數名稱,或搜索沒有找到文件,則此修改程序擴展成空字元串。

下表列出可用來獲得綜合結果的修改程序組合。

變數(使用組合的修改程序) 說明

%~dpI 只將 %I 展開到驅動器號和路徑。

%~nxI 只將 %I 展開到文件名和擴展名。

%~fsI 將 %I 展開到只包含短名稱的完整路徑名。

%~dp$PATH:I 在 PATH 環境變數中所列出的目錄中搜索 %I,並展開到第一個找到結果的驅動器號和路徑。

%~ftzaI 將 %I 展開到輸出行(如 dir一樣)。

在上述範例中,可以用其它有效值替換 %I 和 PATH。有效的 for 變數名終止 %~ syntax。

使用大寫變數名(例如 %I),可以使代碼更具可讀性,並且避免與不區分大小寫的修改程序混淆。

解析字元串

通過將 Filenameset 包括在圓括弧內,並且外面再帶上單引號(即,'filenameset'),可以使用 for /F 對直接字元串解析邏輯。將 Filenameset 視為從某個文件輸入的單行,然後接受解析。

解析輸出

通過將圓括弧之間的 filenameset 變為後面帶有引號的字元串,可以利用 for /F 命令解析命令輸出。將它作為命令行,此命令被傳遞給子 Cmd.exe,並將輸出捕獲到內存並進行解析,就象它是一個文件一樣。

範例

要在批處理文件中使用 for,請使用以下語法:

for %%variable in (set) do command [CommandLineOptions]

要通過使用可替換變數 %f 顯示當前目錄中擴展名為 .doc 或 .txt 的所有文件的內容,請鍵入:

for %f in (*.doc *.txt) do type %f

在前述範例中,當前目錄中擴展名為 .doc 或 .txt 的每個文件都被替代為變數 %f ,直到每個文件的內容都顯示為止。要在批處理文件中使用該命令,只需使用 %%f 替換 %f 的每個事件。否則忽略此變數,並顯示一條錯誤消息。

要解析文件,同時忽略注釋行,請鍵入:

for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

這個命令解析 myfile.txt 文件的每一行,忽略以分號開頭的行,將第二和第三個令牌從各行傳遞到 FOR 正文(令牌通過逗號或空格分隔)中。FOR 語句的正文引用 %i 以獲得第二個令牌,引用 %j 以獲得第三個令牌,引用 %k 以獲得其餘全部令牌。如果您提供的文件名包含空格,請使用引號將文本引起來(例如,"File Name")。要使用引號,必須使用 usebackq。否則,就將引號解釋為定義要解析的文字字元串。

要通過將 filenameset 放在括弧之間來解析命令輸出,請鍵入:

for /F "usebackq delims==" %i IN (`set`) DO @echo %i

這個範例列舉當前環境中的環境變數名。

㈡ WINDOWS如何用命令方式查看文件內容

打開命令提示符進行操作。

㈢ window bat讀取系統事件信息,寫入到一個文件中去

往往我們的電腦在使用一段時間之後,由於頻繁地安裝新程序,系統的啟動速度越來越慢,這是由於系統在啟動中載入的程序過多造成的,要想加快系統的啟動速度,我們可以為電腦清理一下啟動組中的程序。 1.刪除config.sys和autoexec.bat中不必要的載入命令 一般情況下這兩個文件中的所有命令都可以刪除。刪除該文件中內容後執行「開始→運行→msconfig」。在彈出的「系統配置實用程序」窗口中在「config.sys」和「autoexec.bat」兩項中去掉所有選項前面的「√」即可。 2.刪除「啟動組」中的快捷方式 一些軟體在安裝過程中會自動向啟動組中添加一些啟動程序(如Winzip、Winamp等),如果啟動組中載入的程序過多會導致系統啟動的速度變慢,要想加快電腦的啟動速度,我們應去掉啟動組中的一些不必要的程序。右鍵單擊開始菜單,在彈出的對話框中選擇「打開」命令,隨後彈出一個「C?\Documents and Settings\xxxx\「開始」菜單」窗口,依次進入「程序→啟動」文件夾,刪除其中所有的快捷方式圖標即可。 3.卸載系統常駐程序 有些程序每次都隨著系統啟動,但是這些程序的快捷方式並沒有出現在「開始→程序→啟動」中。刪除這些程序的方法是:在「系統配置實用程序」中點選「啟動」選項,去掉某一項前的「√」即可。 提示:在以上操作中我們可以通過「Msconfig」程序快速對啟動組進行優化,而在Windows 2000中卻拋棄了這個程序,如果要想優化啟動組,我們只能通過注冊表來完成,非常麻煩。其實我們可以將Windows XP系統中Msconfig程序復制到Windows 2000系統的system文件夾中,隨後直接運行即可。 4.關閉「自動發送錯誤報告」功能 大家在Window XP 中肯定有這樣的經歷,一旦一個程序異常終止,系統就會自動跳出一個對話框問你是否將錯誤發送給微軟,這就是XP中的「自動發送錯誤」功能,它可以將錯誤信息發送到微軟的網站。雖然微軟一再信誓旦旦地表示,可以提供強大的安全保障,不會泄露個人隱私,但是發送給微軟的信息中有可能包含你正在瀏覽或編輯的文檔信息,也許這正包含了個人隱私或是公司機密,因此如果你想保障自己應有的權利,我們應該義無反顧的把這項功能關掉。方法是:單擊「開始/控制面板/系統/高級」,單擊「錯誤報告」按鈕,然後選中「禁用錯誤報告」,下面的「但在發生嚴重錯誤時通知我」可以選中。 5.合理設置虛擬內存 對於虛擬內存文件,Windows XP為了安全默認值總是設的很大,浪費了不少的硬碟空間,其實我們完全可以將它的值設小一點。方法是:進入「控制面板/系統/高級/性能/設置/高級/虛擬內存/更改」,來到虛擬內存設置窗口,首先確定你的頁面文件在哪個驅動器盤符,然後將別的盤符驅動器的頁面文件全部禁用。建議你把它是設置到其他分區上,而不是默認的系統所在的分區,這樣可以提高頁面文件的讀寫速度,有利於系統的快速運行。根據微軟的建議,頁面文件應設為內存容量的1.5倍,但如果你的內存比較大,那它佔用的空間也是很可觀的,所以,建議如果內存容量在256MB以下,就設置為1.5倍,最大值和最小值一樣,如果在512MB以上,設置為內存容量的一半完全可行。 6.清理垃圾文件 Windows XP在正常的使用過程中會產生擴展名為TMP、BAK、OLD之類的垃圾文件,你可以用Windows的搜索功能,查出這些文件,然後把它們刪除。另外Windows XP默認會在系統失敗時記錄錯誤事件,並寫入調試信息,這些文件信息我們完全可以棄之不用。方法是單擊「開始/控制面板/系統/高級/啟動和故障恢復」,清空「將事件寫入日誌文件」,在「寫入調試信息」下拉框里選「無」即可。 7.更改IE臨時文件夾 上網時產生的大量臨時文件都存放在IE臨時文件夾中,默認情況下,臨時文件夾是在系統分區上,大量的臨時文件會影響硬碟讀寫系統文件的性能。你可以更改臨時文件的位置來避免出現這種情況。方法是單擊「開始/控制面板/Internet選項」,在「常規」選項卡中單擊「設置」按鈕,在打開的窗口中單擊「移動文件夾」按鈕,指定一個非系統分區上的文件夾,單擊「確定」後,臨時文件就會移到指定的文件夾上。 8.加快菜單顯示速度 選擇「開始/運行」,輸入regedit,彈出注冊表編輯,尋找[HKEY_CURRENT_USERControlPanelDesktop],在右邊的窗口中選擇MenuShowDelay,按滑鼠右鍵,選擇「修改」,將其數值資料改為100或更小(默認值為:400),建議不要使用0,因為如此一來只要滑鼠一不小心觸碰到「所有程序」,整條菜單就會跑出來,那這亂了套。 9.加快關機速度 Windows XP的開機速度的確比以前版本的操作系統快了很多,但關機速度卻慢了不少。如果你在意關機速度的快慢,可以修改幾個注冊表鍵值,就可以大大減少Windows關閉所用的時間。首先打開注冊表編輯器,找到HKEY_CURRENT_USERControl PanelDesktop,裡面有個名為HungAppTimeout的鍵,它的默認值是5000(如果不是,把它改為5000)。接下來,還有個WaitToKillAppTimeout鍵,把它的值改為4000(默認值是2000)。最後,找到注冊表如下位置:HKEY_LOCAL_。同樣地,把其中的WaitToKillServiceTimeout鍵值改為4000。另外,把「控制面板/管理工具/服務」中的NVidia Driver Help服務設為手動,也可以加快Windows關閉時間。 10.關閉計算機時自動結束任務 在關機的時候,有時會彈出討厭的對話框,提醒某個程序仍在運行,是否結束任務。其實完全可以通過一點點修改讓Windows自動結束這些仍在運行的程序。在注冊表中打開HKEY_CURRENT_USERControl PanelDesktop 目錄,把裡面的AugoEndTasks鍵值改為1。 注意:可能會找不到AutoEndTasks鍵值,如果是這樣的話,自己建一個串值並把它改為這個名字,值設為1就可以了。 11.關閉華生醫生Dr.Watson 單擊「開始/運行」,輸入「drwtsn32」命令,或者「開始/所有程序/附件/系統工具/系統信息/工具/Dr Watson」,調出系統里的華生醫生Dr.Watson ,只保留「轉儲全部線程上下文」選項,否則一旦程序出錯,硬碟會讀很久,並佔用大量空間。如以前有此情況,請查找user.dmp文件,刪除後可節省幾十MB空間。 12.減少磁碟掃描等待時間 WindowsXP雖然號稱穩定,但是並不是永不死機,偶爾也會給你個藍臉,非法操作後系統會自動掃描,出現大段大段的E文,告訴你剛才系統非正常結束,現在需要檢查一下是否出錯,可是還要等待一段時間才開始,所以我們可以在dos下,鍵入「chkntfs/t:0」,表示等待時間為0秒。

㈣ windows bat批處理復制文件操作(提取同類型文件到另一個文件夾)

同學讓我幫忙處理數據,但是有365天的數據也就是365個文件夾,整體文件好幾十個G,但是每個文件夾中有用的文件只有幾個且很小,於是就准備寫一個腳本文件對其進行批處理,反正也沒迅念舉學過,就搜集資料搞吧,搞好了詳細寫給大家看嘛。

同學的文件分布是這樣的:

其中有用的文件是這樣的,且每個文高局件夾中都類似:

明確了需求,直接把最後源碼先看,再具體一行行講:

下面是講解,對應每行

(1)@為不輸出當前行,echo off是取消顯示命令
(2)mkdir是創建文件夾
(3)for循環中,腳本語言使用%%variable做變數,要加兩個百分號,變數名大小寫區分,/f的話就是遍歷整體裡面的內容,若不加則無法遍歷file,後面的dir是當前路徑,加參數(只列出當前用到的),也就是只按順序輸出文件夾名:

(4)輸出一下文件夾名
(畝碧5)將文件夾中符合met_ . 格式的文件復制到result文件夾中,*是通配符,可以代表任何字元。後面的參數意義為:

閱讀全文

與win批處理讀取文件內容相關的資料

熱點內容
一個文件盒省內寄順豐多少錢 瀏覽:41
誅仙62坐騎怎麼升級到63 瀏覽:926
linux以日期查看日誌記錄 瀏覽:446
工業大數據是什麼東西 瀏覽:881
魅族note3怎麼重置網路 瀏覽:510
c語言程序設計模 瀏覽:92
兒童怎麼做可編程機 瀏覽:603
數據計算屬於什麼統計學 瀏覽:921
07word怎麼去掉標記 瀏覽:979
qq緩存的數據是什麼 瀏覽:348
LED主Kv文件多少兆 瀏覽:856
蘋果edge怎麼刪除下載文件 瀏覽:471
sas邏輯回歸代碼 瀏覽:572
用於keil下的stc器件資料庫 瀏覽:400
新聞網站後台如何操作前台 瀏覽:539
在剪映app中怎麼查看視頻尺寸 瀏覽:9
linux文件成分包括 瀏覽:886
文件轉換免費的軟體 瀏覽:644
linuxwpsxlsx 瀏覽:482
小米手機怎麼上移動網路連接失敗怎麼辦 瀏覽:598

友情鏈接