我可以使用哪个命令在 Windows 中递归重命名或移动文件?

我可以使用哪个命令在 Windows 中递归重命名或移动文件?

Windows 中的哪个命令模拟 Unix 中的递归移动/重命名命令?

答案1

使用 XP 的for命令。例如,从命令行(在批处理文件中使用%%x)执行递归移动:

for /r %x in (foo) do move "%x" "drive:\path\bar"

要进行递归重命名,请执行以下操作:

for /r %x in (*.c) do ren "%x" *.cpp

示例批次:

for /r "< DIR >" %%x in (*.c) do ren "%%x" *.cpp

答案2

robocopy "C:\Source Folder" "C:\Destination Folder" /E /COPYALL /XJ


Description of parameters:
/E - copy subdirectories, including Empty ones (/S to exclude empty ones)
/COPYALL - COPY ALL file info (equivalent to /COPY:DATSOU)
/XJ - eXclude Junction points and symbolic links. (normally included by default).

答案3

我刚刚在 Windows XP SP2 机器中使用 move 命令运行了一个小示例,它成功了。所有文件和目录都从源移动到了目标。源和目标都是目录名。

移动源目标
版本

Microsoft Windows XP [版本 5.1.2600]
移动 /?

移动文件并重命名文件和目录。

要移动一个或多个文件:
移动 [/Y | /-Y] [驱动器:][路径]文件名 1[,...] 目的地

重命名目录:
移动 [/Y | /-Y] [驱动器:][路径]目录名1 目录名2

  [drive:][path]filename1 指定文件的位置和名称
                          或您想要移动的文件。
  目标 指定文件的新位置。目标
                          可以由驱动器号和冒号组成,
                          目录名称或组合。如果您要移动
                          只有一个文件,你也可以包含文件名,如果
                          您想在移动文件时重命名它。
  [drive:][path]dirname1 指定要重命名的目录。
  dirname2 指定目录的新名称。

  /Y 取消确认提示
                          覆盖现有的目标文件。
  /-Y 提示是否确认覆盖
                          现有的目标文件。

开关 /Y 可能存在于 COPYCMD 环境变量中。
可以使用命令行上的 /-Y 覆盖此设置。默认为
提示覆盖,除非正在执行 MOVE 命令
在批处理脚本中。

答案4

内置的 XCOPY 命令很接近。它将执行递归复制,但我认为它不支持重命名。

相关内容