【问题标题】:Batch File Copy and Rename批处理文件复制和重命名
【发布时间】:2017-12-11 14:13:23
【问题描述】:

目前正在寻求使用批处理文件将文件从 C:Drive 源复制并重命名为 G:Drive 目标。目前有如下代码:

robocopy C:\Users\abronk04\Desktop\Test G:\Users\abronk04\Desktop\Backup  /e /purge
ren G:\Users\abronk04\Desktop\Backup accessbackup.jpg backup.jpg

文件将成功复制,但没有重命名。我是否需要指定要重命名的文件?我的批处理文件会将整个文件夹复制到另一个目的地,不确定这是否是这里的问题...

【问题讨论】:

  • 您必须使用ren "G:\Users\abronk04\Desktop\Backup accessbackup.jpg" backup.jpg,因为要重命名的文件名中有空格。在命令提示符窗口cmd /? 中运行并在输出帮助中至少阅读最后输出页面上的最后一段,以便在文件/文件夹名称或任何其他参数字符串必须包含在双精度中时得到通知引号。或者如果文件accessbackup.jpg也在指定路径的文件夹中,则使用ren G:\Users\abronk04\Desktop\Backup\accessbackup.jpg backup.jpg
  • 嗨莫菲。重命名仍然无效:'xcopy C:\Users\abronk04\Desktop\Test\accessbackup.jpg G:\Users\abronk04\Desktop\Backup /e /purge ren "G:\Users\abronk04\Desktop\Backup\ accessbackup.jpg" 备份.jpg'
  • G:\Users\abronk04\Desktop\Backup\backup.jpg 是否已经存在?是的,那么无法将其他文件重命名为 backup.jpg。错误信息输出是什么?您可以在打开命令提示符窗口时看到错误消息,并从命令提示符窗口中分别运行批处理文件中的命令。我更喜欢使用命令move 重命名此示例中的文件:move /Y "G:\Users\abronk04\Desktop\Backup\accessbackup.jpg" "G:\Users\abronk04\Desktop\Backup\backup.jpg"。选项 /Y 会覆盖具有该名称的现有文件。
  • xcopy 没有/PURGE 选项,您似乎将其与robocopy 混淆了...
  • @abronk,您的问题标题专门使用了术语TimeStamp,但是您的问题或提供的命令既没有提及也没有表明该术语是相关的。此外,您似乎对您正在尝试做的事情感到困惑;您的问题表明您只想将文件复制到另一个名称不同的位置,但您的命令似乎与复制目录有关。您能否根据需要通过editing your question 澄清每个问题。

标签: windows batch-file


【解决方案1】:

我认为你ren 的语法不正确。 也许复制目录后尝试以下操作

pushd G:\Users\abronk04\Desktop\Backup
ren accessbackup.jpg backup.jpg
popd

这样您将暂时将工作目录更改为接收器路径,然后将其更改回

【讨论】:

  • 感谢您的回复,我能够通过一些更改获得一个完全正常工作的批处理文件。这是我所拥有的: "DEL /Q "C:\Users\abronk04\Desktop\Back up*.*" copy /Y C:\Users\abronk04\Desktop\Test\accessbackup.jpg "C:\Users\abronk04\ Desktop\Back up\GtCopy.jpg" ren "C:\Users\abronk04\Desktop\Back up\GtCopy.jpg" "GtCopy%date:~-7,2%%date:~-10,2%%date: ~-4,4%.jpg""。该文件将删除旧副本,制作新副本,然后使用时间戳重命名新副本。注意 - 这一切都是作为测试发生的,所以它都在 C 盘上。