將函數應用於 CSV 檔案的內容

將函數應用於 CSV 檔案的內容

我目前正在處理一個批次文件,這給我帶來了困難。我有一個生成的 .CSV 文件,其中包含標題和兩列。該文件也恰好被編碼為 ASCII(發現這是一個真正的啟示!)第二列包含一個文本文件列表,我需要讀取這些文本文件並將函數應用於其中包含的每個條目。

我曾想過使用 copy 或 type >> 將文件合併為一個文件,這樣會更容易解析,但我很難閱讀 csv 的內容並使用內容...

到目前為止我正在使用

for /f "skip=1 usebackq tokens=1-2 delims=," %%a in ("%temp%\list.txt") do echo %%b>>"%temp%\newfile.txt"

但它不起作用......(我得到的只是一個空文件)而且我似乎不知道下一步該做什麼來將函數應用於列出的所有文件,以便我可以處理它們的組合內容。我已經為此苦苦掙扎了兩天,並開始對看似簡單但我似乎無法弄清楚的事情感到惱火。

這是我的 CSV 檔案的內容

顧客編號、顧客姓名
44456、詹姆士龐德
33356、邪惡博士

我有一個資料夾,其中包含一個名為 James Bond.txt、Mister Rogers.txt、Chief Bob,txt 和 Doctor Evil.txt 的文件,其中包含客戶資訊。因此,我希望僅將 CSV 檔案指定的所需名稱放在一起,然後一次列印所有內容的完整清單。

希望這能澄清事情(我知道,這很難解釋)

編輯我嘗試了建議的程式碼片段,但它仍然不起作用...我得到的只是一個空文件...但出於某種原因,我認為它看起來很有希望。

答案1

如果這些Client name列在具有副檔名的資料夾中具有同名文件.txt,則應執行下列批次。

:: Q:\TEST\2017-05\25\DEMO\SU_1212933.cmd
@Echo off
For %%A in (".\folder") Do Set "folder=%%~fA"
( for /f "skip=1 usebackq tokens=1* delims=," %%a in (
   ".\list.csv"
  ) do If Exist "%folder%\%%b.txt" Type "%folder%\%%b.txt"  
) >".\Report.txt"

為了示範這是我的測試環境

> tree . /F
Q:\TEST\2017-05\25\DEMO
│   SU_1212933.cmd
│   list.csv
│   Report.txt
└───folder
        James Bond.txt
        Doctor Evil.txt

兩個txt檔案的內容folder

> type folder\*.txt

folder\James Bond.txt

#################################################
## this is file "James Bond.txt" in folder     ##
#################################################

folder\Doctor Evil.txt

#################################################
## this is file "Doctor Evil.txt" in folder    ##
#################################################

運行批次後,文件report.txt包含:

> type Report.txt
#################################################
## this is file "James Bond.txt" in folder     ##
#################################################
#################################################
## this is file "Doctor Evil.txt" in folder    ##
#################################################

相關內容