Показать полную графическую версию : Найти папки содержащие файл
maxim43g
08-05-2019, 15:37
Добрый день.
мне необходимо найти все папки, содержащие файл "test.txt".
желательно сразу их переместить в другую директорию.
может скрипт какой или программа есть?
1. «их переместить» — что именно переместить, каталоги или файлы?
2. Что делать при совпадении имён при попытке перемещения?
maxim43g
13-05-2019, 09:36
1. «их переместить» — что именно переместить, каталоги или файлы?
2. Что делать при совпадении имён при попытке перемещения? »
переместить каталоги, но это необязательно, просто очень хотелось бы.
при перемещении совпадения каталогов быть не может, ведь они уже созданы на локальном диске. Имею ввиду, что Windows сразу бы ругался на совпадение имен
переместить каталоги...очень хотелось бы»
при перемещении совпадения каталогов быть не может, ведь они уже созданы на локальном диске. »
Да ладно?!
c:\folder1\Folder\test.txt
c:\folder2\Folder\test.txt
c:\folder2\folder3\Folder\test.txt
Что и главное - куда перемещать?
Имею ввиду, что Windows сразу бы ругался на совпадение имен »
Ну, ладно, поругалась... а что делать-то с каталогами, перезаписывать или нет?
maxim43g
13-05-2019, 10:53
Ну, ладно, поругалась... а что делать-то с каталогами, перезаписывать или нет? »
я наверное не правильно изъяснился)
подкаталогов нет.
т.е. только такого вида C:\папка\ и в ней либо присутствует файл test.txt либо нет, в данной папке только файлы, подкаталогов нет.
каталоги перезаписывать не нужно, лучше переименовать или добавить какой-либо символ в конце
подкаталогов нет. »
Тогда, дубликатов в принципе не должно быть:
powershell
#requires -v 3.0
$src = 'c:\'
$dst = 'd:\out'
$file = 'test.txt'
if (!(test-path $dst)){md $dst|out-null}
mi (dir $src -dir|%{dir $_.fullname -file|? name -eq $file}|select directory).directory $dst
megaloman
13-05-2019, 14:40
подкаталогов нет.
т.е. только такого вида C:\папка\ и в ней либо присутствует файл test.txt либо нет, в данной папке только файлы, подкаталогов нет. »@Echo Off
Set "File=test.txt"
Set "BoxIn=D:\CMD_Forum"
Set "BoxOut=D:\CMD_Forum\Box_Out"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%File%" /S /B /A:-D^|Find /V /I "%BoxOut%"`) DO (
Set "Pf=%%~dpf"
Call MD "%BoxOut%\%%Pf::=%%"
Call 1>nul Move /Y "%%~dpf*.*" "%BoxOut%\%%Pf::=%%" &&Rd "%%~dpf"
)
Exit /Bкаталоги перезаписывать не нужно, лучше переименовать или добавить какой-либо символ в конце »ИМХО, это плохая идея, непонятно, откуда что взято. Я переношу файлы с полным путём и буквой диска.c:\folder1\Folder\test.txt
c:\folder2\Folder\test.txt
c:\folder2\folder3\Folder\test.txt » ->
c\folder1\Folder\test.txt
c\folder2\Folder\test.txt
c\folder2\folder3\Folder\test.txt
maxim43g
13-05-2019, 17:00
Тогда, дубликатов в принципе не должно быть:
powershell »
супер! все сработало, спасибо!
скажите, такая вот еще ситуация, у меня файлы такого типа "заявление на материальную помощь", некоторые пользователи создавали файлы по разному, например "заяв на на материальную помощь" или "заяв. на материальную помощь". можно ли как то переместить эти каталоги, если в названии файла есть слово "помощь"?
megaloman , спасибо большое.
тот же вопрос, можно как то исправить скрипт, что бы он выполнял условия выше?
megaloman
13-05-2019, 17:39
maxim43g,Set "File=*помощь*.*"Так как в имени русские символы, то критично - сохранить код в 866 (dos) кодировке.
Если надо искать файлы начиная с корня диска, то указывать, например,Set "BoxIn=D:"
@Echo Off
Set "File=*помощь*.*"
Set "BoxIn=D:"
Set "BoxOut=D:\CMD_Forum\Box_Out"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%File%" /S /B /A:-D^|Find /V /I "%BoxOut%"`) DO (
Set "Pf=%%~dpf"
Call MD "%BoxOut%\%%Pf::=%%"
Call 1>nul Move /Y "%%~dpf*.*" "%BoxOut%\%%Pf::=%%" &&Rd "%%~dpf"
)
Exit /B
Как видите, изменения только в описании входных данных.
переместить эти каталоги, если в названии файла есть слово "помощь"? »
#requires -v 3.0
$src = 'c:\'
$dst = 'd:\out'
$file = 'помощь'
if (!(test-path $dst)){md $dst|out-null}
mi (dir $src -dir|%{dir $_.fullname -file|? name -match $file}|select directory).directory $dst
чтобы с кириллицей не было проблем, скрипт лучше сохранять с кодировкой либо 1251, либо utf-8 с BOM
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.