从DOS命令移动除某些(文件模式)以外的所有文件

eze*_*981 8 dos batch-file

从DOS命令我想移动所有与文件名模式不匹配的文件.像这样的东西:

例如,我想移动所有不以"aaa"开头的文件

for %i in (*) do if not %i == aaa* move %i .\..
Run Code Online (Sandbox Code Playgroud)

Pau*_*asi 13

XCOPY旨在使用' 排除 '列表...见下文:

   dir /b /a-d "source"|findstr /b "aaa" >"%temp%\aaafiles.tmp"

   xcopy "source" "destination\" /exclude:%temp%\aaafiles.tmp /y
Run Code Online (Sandbox Code Playgroud)

第一行执行文件夹的DIR(目录)列表,以无格式列出文件(/ b)忽略目录名称(/ ad).输出通过管道输入FINDSTR命令.

FINDSTR查看每个文件名并将其开头(/ b)与字符串" aaa "进行比较.

如果文件名的开头与字符串" aaa " 匹配,则将文件名重定向(写入)到用户TEMP目录中的文件aaafiles.tmp.

/ B,因为你不想要排除的文件,例如是至关重要的theaaafile.txt.

XCOPY命令复制从文件的文件夹的目标文件夹,除了中列出的文件aaafiles.tmp.

提示覆盖现有文件(/ y)已关闭.

目标将需要替换您自己的foldernames.

  • 这是一个文件副本,而不是一个动作.对于大文件,副本可能非常慢,而同一卷上的移动几乎是瞬时的. (2认同)

小智 6

Robocopy是可能的

robocopy source destination *.* /mov /XF aaa*.*
Run Code Online (Sandbox Code Playgroud)

有关选项的信息,请参见 http://technet.microsoft.com/zh-cn/library/cc733145.aspx