无法通过Windows命令行重命名复制的文件

时间:2015-10-13 15:32:39

标签: windows csv batch-file

我正在尝试创建一个.BAT脚本,该脚本将从CSV(第1列)中读取文件位置列表,然后在目录中找到该文件并将其复制到新文件夹,为其指定列中指定的名称2个CSV文件。

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的第二部分以及用于重命名文件的代码。

1 个答案:

答案 0 :(得分:0)

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

其中%%M是请求的第二个令牌(第二个字段将使用L作为可替换参数后的下一个字母),%%~xL是被引用的文件的扩展名%%L