我有一个.csv文件,格式如下:
<path_including_filename>,<new_filename>
<path_including_filename>,<new_filename>
<path_including_filename>,<new_filename>
<path_including_filename>,<new_filename>
我想将我的CSV中第1列的内容从位置A复制到位置B,然后使用我的CSV中第2列的内容重命名位置B上的文件。
这是我到目前为止所做的,复制工作但重命名似乎并没有真正发生:
For /F "tokens=1* delims=," %%i in (myCSV.csv) do (copy "%%i" "C:/myFolder" && rename "C:/myFolder/%%~nxi" "%%j")
提前致谢。
答案 0 :(得分:0)
这个答案过去常常包含我的错误的建议:
当第二列不是完整路径名,而只是文件名时,rename "C:/myFolder/%%~nxi" "%%j"
将其目标参数作为相对于当前目录的路径,而不是来源目录。
我认为问题应该通过在rename
的第二个参数中提供完整路径名来解决:
rename "C:/myFolder/%%~nxi" "C:/myFolder/%%j"
但是没有:rename
的目标参数中的完整路径名实际上是无效。 cd
首先解决目标目录并在 参数中重命名没有文件夹名称的解决方案结果正常。我认为在第一个参数中使用反斜杠替换正斜杠(保留第二个而不包含文件夹名称)也会有所帮助:在我的Windows XP测试中,{{1}当源文件夹路径包含正斜杠并且用于反斜杠时,“找不到文件”失败。