2015-10-13 187 views
0

我想創建一個.BAT腳本,它將從CSV(第1列)中讀取文件位置列表,然後在目錄中找到該文件並將其複製到新文件夾中爲其指定CSV文件第2列中指定的名稱。無法通過Windows命令行重命名複製的文件

的CSV樣子:

U:\source\OHSVols180\A100\B100\C107\F109.DOC,file1 
U:\source\OHSVols180\A100\B100\C110\F152.PDF,file2 

下.bat文件現任職於它訪問CSV場1和將文件複製到新文件夾。我的問題是我如何管理也可以按CSV中的第2列重命名複製的文件?它可以保持與前面列1中相同的文件擴展名。目前他的文件被命名爲最初的F109.DOC和F152.PDF,但我希望它們被稱爲file1.DOC和file2.PDF。

for /f "tokens=1 delims=," %%L in (U:\ExportList.csv) do copy "%%L" U:\Exported\ 

任何幫助非常感謝。不知道如何引用CSV的第二部分以及要重命名文件的代碼。

回答

0
for /f "tokens=1,2 delims=," %%L in (U:\ExportList.csv) do copy "%%L" "U:\Exported\%%M%%~xL" 

哪裏%%M是要求第二代幣(第二場將使用作爲替換參數L後的下一個字母),並%%~xL是文件的擴展名由%%L

+0

作品像做夢一樣被引用謝謝你現在有一個漂亮的小文件複製程序!我理解了令牌部分1,2,並且您只是使用字母表中的下一個字母作爲下一列。只是出於興趣,你可以解釋%% M %%〜xL部分是什麼意思? – 83dons

+0

@ 83dons,它包含在答案中。你可以從命令行執行'for /?'來獲得可用修飾符的完整列表。 –

+0

啊,是的道歉謝謝你的解決方案,我花了一天,一半試圖解決這個問題! – 83dons