Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Собрать вместе все каталоги с отдельными программами (http://forum.oszone.net/showthread.php?t=349147)

Shauniam 05-07-2021 10:34 2961445

Собрать вместе все каталоги с отдельными программами
 
Нужна программа или скрипт(bat,com,ps1,vbs )По дискам разбросаны папки с отдельными программами,с сопутствующим описанием и сопутствующими составляющими к программам,без которых программы не запустятся.Нужно найти такие папки в которые вложены эти программы с запускающими exe-шками и целиком переместить в общую-заданную папку, в которой будут собраны эти разрозненные программы,со своими файлами.каждая в своей папке.

Так получилось,что программы-портабл и установочные собраны в разных местах.Потому нужна программа или скрипт(можно несколькими и в несколько заходов-поиск,редактирование списка и перенос директорий) обнаружения этих файлов и перенесение папок в которых они находятся с сохранением их структуры и целостью находящихся в них файлов.
План такой:
1.Программ или скрипт находит файлы и папки в которых они находятся-составляет список.
2.Редактирование списка с удалением ненужного.
3.Программа или скрипт переносит эти директории в одно место с названием Rrograms.
4.Вместе радуемся жизни и от достигнутого результата и моей благодарности(вам не помешает).
Если есть такая программа или скрипт который все это делает, то как мне ее найти или получить,чтобы достичь цели несколькими нажатиями клавиатуры и мышки? Будет сохранено огромная часть времени,... а жизнь так быстротечна и еще нужно много успеть-Жить-приносить радость ближним!

Iska 05-07-2021 10:55 2961447

«Поди туда — не знаю куда, принеси то — не знаю что»™.

:shot:

Elven 05-07-2021 11:59 2961451

Цитата:

Цитата Shauniam
Если есть такая программа или скрипт который все это делает, то как мне ее найти или получить,чтобы достичь цели несколькими нажатиями клавиатуры и мышки? »

На свете много, друг Горацио такого, что и не снилось нашим мудрецам.
Исходя из того, что нужно сделать, рекомендую посмотреть в сторону систем управления конфигурацией. В зависимости от различных параметров это может быть Ansible, Puppet, Chef, Salt... Подозреваю, что даже начало списка еще не закончено, однако здесь представлены весьма популярные варианты, информации как их пользовать в "ентих ваших инторнетах" - уйма. Если прицел чисто на винды то можно посмотреть в сторону SCCM, но, кмк, это таки не совсем про то.
Кроме того, т.к. упоминаются некие "составляющие... , без которых программы не запустятся" можно таки собрать нормальный установочник, и/или использовать контейнеризацию (здесь смотреть в сторону Docker).
Больше здесь, пожалуй, подсказать ничего не смогу, и маловероятно, что кто-то сможет. На такое описание задачи и ответ может быть только в общих чертах.

megaloman 05-07-2021 18:04 2961482

Shauniam, ИМХО, игра не стОит свеч. Это разовая акция и затраты на разработку скрипта будут существенно больше, чем ручная разовая работа. В любом случае, чтобы что-то делать, надо знать имена исполнимых файлов. Чтобы что-то искать, надо иметь представление, как оно выглядит.
Если знаете имя "программа.exe", то из командной строки
Dir "программа.exe" /S /B /A:-D
можно найти и увидеть путь.

Вы наставили программ - какие-то следы от них есть? Иконки, пункты в пуске, информация в диспетчере задач и т д, откуда можно взять путь. А далее - ручками делаем перенос, если только это не нарушит функциональность программы.

greg zakharov 05-07-2021 19:03 2961483

Цитата:

Цитата megaloman
ИМХО, игра не стОит свеч.

:off: Очень тактичный намёк со свечами автору темы.

megaloman 09-07-2021 14:41 2961807

Shauniam, Не мытьём, так каканьем
Код:

@Echo Off
cls
>nul Chcp 1251

        Set "BoxIn=Q:"
        Set "BoxOut=Q:\Programs"

        FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxIn%\" /S /B /A:D ^| findstr.exe /I /V /C:"%BoxOut%"`) DO Echo === %%d &If Exist "%%d\*.exe" (
                Echo "%%d" &Echo ---------------------------------------------------
                Dir /B /A:-D "%%d\*.exe" 
                Call :Cho "%%d" "%BoxOut%\%%~nxd\" ||Exit /B
        )
Exit /B 0

:Cho
        Echo.
        CHOICE /C YNC /N /M "Y-переместить %~1, N-пропустить, C-завершить"
        If %Errorlevel%==1 Xcopy /E /H /R /Y "%~1\*.*" %2 &&Rd /S /Q %1
        If %Errorlevel%==3 Exit /B 2
        Echo. &Echo. &Echo. &Echo.               
Exit /B 0



Время: 10:22.

Время: 10:22.
© OSzone.net 2001-