将文件复制到另一个文件夹,在目标中重命名并覆盖现有文件

Copy file to another folder, rename in destination and overwrite existing file

我有一个批处理脚本可以将文件复制到另一个目的地。我试图在保留其名称和扩展名的同时复制文件,然后在目标文件夹中将其全部更改。但是,目标文件夹在更改后将始终具有相同的文件名和不同的扩展名。这就是为什么我想在更改复制文件的名称和扩展名后在任何情况下都覆盖当前文件。在示例中,要复制的文件是“我的文件Name.ssl”,更改后将被覆盖的目标文件是“renamedfile.conf”。此代码甚至不复制文件。

@echo off
move /Y C:\Users\Murray\Desktop\My File Name.ssl C:\Program Files (x86)\Folder\Subfolder\
ren "C:\Program Files (x86)\Folder\Subfolder\My File Name.ssl" renamedfile.conf

我错过了什么?

您遗漏了文件名周围的正确引号

使用具有正确权限的移动,您不需要将重命名作为辅助功能,请参阅 move /?

的用法
move /Y "C:\Users\Murray\Desktop\My File Name.ssl" "C:\Program Files (x86)\Folder\Subfolder\renamedfile.conf"

将以新名称移动它

但是您需要“C:\Program Files (x86)”的管理员权限,因此可能需要 运行 cmd 作为管理员。

没有管理员权限

move /Y "C:\Users\Murray\Desktop\My File Name.ssl" "C:\Program Files (x86)\Folder\Subfolder\"

在我的例子中,访问被拒绝。移动了 0 个文件。

如果您希望保留原始副本并仅替换程序文件中的副本,请使用 copy /? 检查,但在这种情况下只需将 move 替换为 copy