我有一个文件夹,其中包含不同命名模式的文件。例如:
S012344
S00abcd
DA01234
DAL1230
D13459A
MOV0001
M123004
现在我需要移动除具有以下命名模式的文件以外的所有文件:(**表示正则表达式)
- S00****
- Starts with D and ends with A
- MOV****
我需要作为批处理文件的一部分来执行此操作,我进行了很多搜索,但没有找到合适的解决方案来解决此问题。
答案 0 :(得分:0)
您的问题中有歧义。但是,这是一种可行的方法。如果您使用的是受支持的Windows系统,则它将具有PowerShell。如果您满意文件将被正确移动,请从-WhatIf
命令中删除Move-Item
。
=== Move-FilesIWant.ps1
Get-ChildItem -File -Path 'C:\src\t\' |
Where-Object { $_.BaseName -notmatch '(^S00....$|^D.*A$|^MOV....$)' } |
ForEach-Object { Move-Item -Path $_.FullName -Destination 'C:\new\dir' -WhatIf }
如果必须从cmd.exe shell或.bat文件脚本运行它,请使用:
powershell -NoLogo -NoProfile -File '.\Move-FilesIWant.ps1'