Массовое переименование путей с заменой более старых файлов
Добрый день, на локальном разделе имеется множество папок вида "H:\0000055\0000055\documents\куски разных папок", возникли они после восстановления и распаковки удаленных архивов с бэкапами папки documents, подскажите пожалуйста, как теперь найти все папки содержащие в себе папку documents и из них всех эту папку documents перенести в корень того же раздела, при этом должны оставаться только свежие копии файлов в этой папке и ее подпапках
|
DJ Mogarych |
22-07-2022 13:16 2989029 |
Powershell:
Код:
$disk = "H:"
$folder = "documents"
if (!(test-path "$disk\$folder")) {mkdir "$disk\$folder"}
(dir "$disk\*" -Recurse |? {$_.psiscontainer -and $_.fullname -match "\\$folder$"}).FullName |% {
robocopy "$_" "$disk\$folder" /e /xo
}
Здесь не перенос, а копирование, во избежание необратимых действий.
|
DJ Mogarych, Спасибо, не смог дождаться ответа, решил сам вот таким способом, интересует именно перенос, т.к. инфы 1.5 тб, и все это копировать займет достаточно много времени и места
Код:
@echo off
chcp 1251
SetLocal EnableExtensions
::Путь к папке, в которой ищем подкаталог с нужным именем
set dirPath=H:\
:: имя искомого подкаталога, родительский каталог которого переносим
set "dirtoDel=documents"
echo "%dirtoDel%"
for /r "%dirPath%" %%F in (.) do if "%%~nxF"=="%dirtoDel%" ROBOCOPY "%%~dpF%dirtoDel%" "H:\%dirtoDel%" /E /ZB /DCOPY:T /TIMFIX /SL /XJ /R:4 /W:15
pause
|
DJ Mogarych |
22-07-2022 14:44 2989035 |
Цитата:
Цитата Shulzzz
интересует именно перенос »
|
Для этого достаточно добавить ключ /move в строку с robocopy.
|
Время: 11:09.
© OSzone.net 2001-