文件夹c:\folder1
包含subfolder1
,subfolder2
等。
这些子目录包含.pdf
和.db
个文件。
如何使用Windows命令解释器将所有.pdf
文件移动到c:\folder1
?
答案 0 :(得分:21)
这对我有用:
for /r "c:\source_directory\" %%x in (*.pdf) do move "%%x" "c:\target_directory\"
此命令将递归复制al pdf文件从源目录到目标目录 在Windows 7中使用cmd - 经过测试和工作。
希望它有所帮助。
答案 1 :(得分:6)
对于OP来说已经晚了两年,但由于这是我试图解决的问题,我认为我会为后人发布解决方案。外部for循环列出工作目录中的子目录,内部for循环列出要移动到目标路径的子目录。
for /d %f in (*.*) do for /d %e in (%f\*.*) do move "%e" DestinationPath
如果DestinationPath不是工作目录的子文件夹,这将最有效,因为它会尝试将DestinationPath移动到自身。
要在批量运行之前确认命令,请开始只回显最终移动命令,如下所示:
for /d %f in (*.*) do for /d %e in (%f\*.*) do echo move "%e" DestinationPath
并复制/粘贴其中一个结果以运行它并确认它按预期方式工作。然后移除回声并开始移动。
答案 2 :(得分:5)
我认为没有可用于子文件夹的通配符,因此您希望使用循环遍历每个子文件夹并移动* .pdf;
FOR /R [your root folder path] %%G IN (*.pdf) DO move %%G [new path]
DO之后的命令本身就是它自己的引号。如果您预计源或目标中的空格,请使用双引号将其封装起来,例如:
FOR /R "source folder with spaces" %%G IN (*.pdf) DO move "%%G" "dest path with spaces"
注意%% G周围的引号,这些是移动命令解析路径所必需的。
**编辑:回应接受的答案, 分别来自Windows XP和Windows 7上的命令提示符:
这表明通配符在路径中不起作用,仅适用于单个目录中的文件(例如C:\ folder * .files)。命令提示符在遇到通配符时不会递归操作。
答案 3 :(得分:3)
我知道这是高级的,但万一它可以帮助任何人。
用于搜索所有子文件夹中的.MKV文件,并将它们移动到批处理文件所在的当前目录中。
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.mkv) DO (
move "%%X" "%CD%"
)
popd
)
答案 4 :(得分:3)
在Windows资源管理器中还有另一种方法(GUI,而不是命令提示符):
答案 5 :(得分:2)
Robocopy给我带来了奇迹:
robocopy c:\cache c:\cache-2012 ?????-2012*.hash /S /MOV
我用它来移动c:\cache
及其众多子目录中带有特定掩码的所有文件。
答案 6 :(得分:2)
@echo on
for /r "F:\All_drawings\newdrg\" %%x in (*.tiff) do move "%%x" "F:\Alldrawings"
pause
{将所有文件从newdrg
文件夹及其“子文件夹”移动到目标文件夹Alldrawings
,此命令用于命令行的批处理文件操作使用单个“%”地方}。
答案 7 :(得分:1)
这里只是在黑暗中采取疯狂刺,但如果我没记错,DOS可以处理整数,mv
的等价物是MOVE
,所以:
MOVE C:\FOLDER1\*\*.PDF C:\FOLDER1\
答案 8 :(得分:1)
MOVE "C:\FOLDER 1\PDF FILES\*.pdf" "C:\FOLDER 1"
MOVE "C:\FOLDER 1\DB FILES\*.db" "C:\FOLDER 1"
在移动命令之后,您将拥有源文件夹,后跟文件将移动到的目标位置。每个文件扩展名前面的*是一个通配符函数,它将选择该目录中存在的所有指定文件类型。
此外,如果您愿意,可以使用这些命令创建.bat文件。为此,请将您的命令粘贴到记事本中并将其另存为 .bat ,而不是 .txt
然后,您可以双击该文件,每次执行时它都会执行文件中的命令。如果您有任何需要这样的重复性任务,这将非常有用。
答案 9 :(得分:1)
要将所有文本文件复制到一个文件夹并保留目录结构:
xcopy *.txt /s D:文件夹
答案 10 :(得分:0)
在位置c:/folder1
上打开CMD
运行以下命令:
mv ./subfolder1/*.pdf .
mv ./subfolder2/*.pdf .
./subfolder1/*.pdf
在./subfolder1/
中选择所有(*)pdf文件的地方
和
mv命令将它们全部移到相对路径.
,这是当前目录c:/folder1
代替相对路径(例如./subfolder1/
,./subfolder2/
和.
),您还可以键入完整或绝对路径,例如c:/folder1/subfolder1/
,c:/folder1/subfolder2/
和{ {1}}