Доброго времени суток.
Прошу помочь со скриптом. У самого что-то не получилось. (может подскажете где гуглить)
В каталоге лежат файлы name, name-f, name1, name1-f name2-a name2 name3-f name3 и т.д.
Нужно перенести в другой каталог только файлы name-f name. То есть файлы c "-a" и им соответсвующие по именам нужно оставить.
Начал так:
find *-f > files.txt
Что дальше с этим делать - непонятно.
По идее, нужно отбросить -f, вставить в строку поиска то, что получилось построчно, и перенести что найдет.
В общем прошу помочь.
ОС Windows 7
создает в каталоге назначения 1 файл test. После пишет, что "файл уже есть и ничего создавать не буду"
второй строчкой, он должен удалять -f у файлов. Но это не решает задачу.
Спасибо. Натолкнули на мысль.
d:\test - первый каталог. d:\test\test - второй. Скрипт как пример приведен же. Ну и вторая строка не будет делать ничего, если нет этого самого второго каталога ) А по логике там уже должны лежать все нужные вам "-f" файлы.
Немного не понимаю как он переместит оставшиеся в 1 каталоге файлы без "-f".
Он переносит файлы с "-f" - называет их как test, но в 1 каталоге остаются файлы без -f. Самая сложность их перенести. У них название такое же как у "-f" только без нее. Еще там есть файлы без -f относящиеся к -"a" их трогать нельзя. Может я что-то не понимаю в Вашем скрипте. Но вроде он только переносить файлы в каталог 2 и убирает у этих файлов "-f"
Get-ChildItem d:\test -File | Where-Object {$_.name -notmatch "-a"} поиграйтесь с фильтром -nomatch чтобы у вас выводились только нужные файлы. У меня в тестовой папке все файлы содержащие в имени "-a" не перемещаются.
Содержащие -а не перемещаются, все правильно. Но с тем же именем что и -а, но те что без нее перемещаются. Т.е. есть имя, имя-а они оба должны оставаться. а имя и имя-f перемещаться. Надеюсь, теперь понятно объяснил