如何仅将cmd中的特定文件移动到另一个文件夹?

时间:2019-11-04 06:26:34

标签: batch-file cmd

我有一个文件夹,其中包含不同命名模式的文件。例如:

S012344
S00abcd
DA01234
DAL1230
D13459A
MOV0001
M123004

现在我需要移动除具有以下命名模式的文件以外的所有文件:(**表示正则表达式)

- S00**** 
- Starts with D and ends with A
- MOV****

我需要作为批处理文件的一部分来执行此操作,我进行了很多搜索,但没有找到合适的解决方案来解决此问题。

1 个答案:

答案 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'