如何修改CMD移动PDF文件命令以排除子文件夹?
解决仅移动指定文件夹下(不含子文件夹)PDF文件的问题
没问题!你的问题出在原命令里的/r参数——它会让for命令递归遍历指定路径下的所有子文件夹,所以才会把嵌套在子文件夹里的PDF也一起移走。咱们只要简单调整一下命令就能精准实现只移动PDF根目录下的PDF文件:
修改后的命令
C:\WINDOWS\system32\cmd.exe /c "for %f in (c:\Users\ADMIN\Desktop\PDF\*.pdf) do @move "%f" c:\Users\ADMIN\Desktop\PDF\old"
关键修改点说明
- 去掉了原命令中的
/r参数:这个参数是递归遍历的开关,移除后for命令只会扫描你指定的PDF文件夹的顶层目录,不会深入子文件夹 - 调整了
for循环的匹配路径:把for /r c:\Users\ADMIN\Desktop\PDF\ %f in (*.pdf)改成for %f in (c:\Users\ADMIN\Desktop\PDF\*.pdf),直接明确要匹配的是目标文件夹下的.pdf文件,避免递归扫描
额外提示:如果是在批处理文件中使用
如果你把这个命令写到.bat或.cmd批处理文件里,需要把变量%f改成%%f,否则会报错:
@echo off for %%f in (c:\Users\ADMIN\Desktop\PDF\*.pdf) do move "%%f" c:\Users\ADMIN\Desktop\PDF\old
执行修改后的命令后,只有PDF文件夹下直接存放的PDF文件会被移动到PDF\old,像PDF\sub这类子文件夹里的PDF会完全保留,不会被处理~
内容的提问来源于stack exchange,提问作者teaspoon
相关产品推荐
相关产品推荐

