使用批處理讀取文件內容

應用場景:下載系統中符合某些條件記錄的一批附件。
解決方法:用sql查詢這些附件的路徑,保存到一個文件中,用批處理讀取這個文件的每行內容,拷貝到新目錄中。

例如:
用sql查詢語句查詢出來的文件名稱、路徑兩個字段如下

文件名稱 文件路徑
1.txt	d:\data\184a3217aeda61b8991ddd34fd1b45b6
2.txt	d:\data\184bcf911e63fe61306973c497ea9a50

  

把上面內容保存到一個文本文件如d:\data.txt中。

寫一個批處理文件copyFile.bat,內容如下:

@echo off
set "file_path=d:\data.txt"

for /f "tokens=1,2" %%a in (%file_path%) do (
    echo 複製文件 %%b 到  %%a
    copy "%%b"  "d:\output\%%a"
)

echo 文件複製完成!
pause

  

執行後,會把d:\data\184a3217aeda61b8991ddd34fd1b45b6複製到d:\output並重命名爲1.txt,
把d:\data\184bcf911e63fe61306973c497ea9a50複製到d:\output並重命名爲2.txt


說明:
for /f 用於讀取文件內容和解析
tokens=1,2 批處理默認空格是分隔符,表示提取第一列、第二列(索引從1開始)
%%a %%b 對應於token後面的列數,有多少列就要有多少個輸出變量,並且各變量中的字母有順序


另外,使用delims可以指定符號作爲分隔符,切割字符串,默認只顯示前半部分。

@echo off
for /f "delims=、" %%a in ("1、天氣") do echo %%a
pause

輸出:1

@echo off
for /f "tokens=2 delims=、" %%a in ("1、天氣") do echo %%a
pause

輸出:天氣

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章