从CSV复制并在MS-DOS中重命名

时间:2013-02-15 20:28:37

标签: copy-paste dos file-rename

我有一个.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")

提前致谢。

1 个答案:

答案 0 :(得分:0)

这个答案过去常常包含我的错误的建议:

当第二列不是完整路径名,而只是文件名时,rename "C:/myFolder/%%~nxi" "%%j"将其目标参数作为相对于当前目录的路径,而不是来源目录。

我认为问题应该通过在rename的第二个参数中提供完整路径名来解决:

rename "C:/myFolder/%%~nxi" "C:/myFolder/%%j"

但是没有:rename的目标参数中的完整路径名实际上是无效cd首先解决目标目录并在 参数中重命名没有文件夹名称的解决方案结果正常。我认为在第一个参数中使用反斜杠替换正斜杠(保留第二个而不包含文件夹名称)也会有所帮助:在我的Windows XP测试中,{{1}当源文件夹路径包含正斜杠并且用于反斜杠时,“找不到文件”失败。