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 命令很接近。它将执行递归复制,但我认为它不支持重命名。