Как переместить только определенные файлы в cmd в другую папку? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть папка с файлами разных шаблонов именования. Например:

S012344
S00abcd
DA01234
DAL1230
D13459A
MOV0001
M123004

Теперь мне нужно переместить все файлы, кроме того, который имеет следующие шаблоны именования: (** означает регулярное выражение)

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

Мне нужно сделатьэто как часть командного файла, я много искал, но не нашел подходящих решений для решения этой проблемы.

1 Ответ

0 голосов
/ 04 ноября 2019

В вашем вопросе есть неясности. Но вот возможный способ сделать это. Если вы работаете в поддерживаемой системе 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 или сценария .bat, используйте:

powershell -NoLogo -NoProfile -File '.\Move-FilesIWant.ps1'
...