批处理文件将文件从子目录移动到根目录并覆盖名称冲突的文件

批处理文件将文件从子目录移动到根目录并覆盖名称冲突的文件

因此请求帮助,我目前正在尝试整理我的谷歌照片中的混乱情况。我已经下载了我的谷歌照片的存档,并且有一堆包含文件/照片的文件夹。我正在尝试编写一个批处理文件,将文件/照片从文件夹移动到我用于清理的便携式驱动器的根目录。

到目前为止我有这个:

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

它可以工作,我唯一的问题是不同的文件夹中可能存在具有相同文件名的照片,而我不想覆盖。

我可以在移动命令上设置任何参数来阻止覆盖吗?

谢谢

答案1

我可以在移动命令上设置任何参数来阻止覆盖吗?

您可以使用/-Y开关(覆盖文件时启用确认提示)。

下面的技巧将解答这个问题n,所以这一举动不会发生:

echo n|move /-y "%%f" .

笔记:

  • 此技巧仅适用于单个文件,不能使用通配符

  • 如果文件不是移动以下rd命令将失败并出现以下错误:

    The directory is not empty.
    

进一步阅读

相关内容