Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

forum.0day.community _ Системное администрирование _ bat скрипт или конец моей нервной системы

Автор: Fantazmat May 20 2023, 7:59

Доброго времени суток.
Дано: есть 6 окон одного и того же приложениея, все запущены с разными учетками, иногда они отваливаются (решить нельзя), но если учетка теряет соединение то окно не закрываеться, а просто падает в ошибку. Проблема в том что в процессах все 6 окон имеют одно название, меняеться только тайтл после входа в учетку. И так требуеться при вылете окна закрыть только то которое вылетело и запустить заново, Командой

CODE Format
powershell -command "Get-Process -Name exefile | Format-List MainWindowTitle, id | Out-File .\timetotime\pids.txt"
записываю ид процесса и тайтл присвоеный ему, чтоб можно было закрывать только нужное окно. Моя проблема заключаеться в том что powershell при выгрузке в файл создает кучу пустых строк включая и начало файла.


MainWindowTitle : EVE - Zemleroika3
Id : 1100

MainWindowTitle : EVE - r3gent3
Id : 4264

MainWindowTitle : EVE - Zemleroika4
Id : 5644

MainWindowTitle : EVE - Zemleroika2
Id : 8500

MainWindowTitle : EVE - r3gent2
Id : 8584

MainWindowTitle : EVE - Zemleroika
Id : 9188


мне нужен кусок кода который бы мне или переписывал этот файл в другой документ в виде
Zemleroika - 9188

Или чтоб сразуу определял имя пользователя и ид процесса закидывал в переменную.

Буду очень благодарен за помощь, потому что я что то зашел в тупик с этим вопросом.

Автор: Tiger May 20 2023, 12:20

Вдумчиво не писал запрос, просто скопипастил твой пост и исправил ошибки. Попробуй, авось заработает.

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



Автор: Fantazmat May 20 2023, 20:14

(Tiger @ May 20 2023, 13:20) Перейти к цитате

Вдумчиво не писал запрос, просто скопипастил твой пост и исправил ошибки. Попробуй, авось заработает.
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



Я попробовал сделать что то вроде этого
CODE Format
For /F "UseBackQ tokens=1,2,3,4,5 delims=:-( " %%a in ("%pids%") do if "%%a"=="Id" echo %%b>>pids.txt && if "%%a"=="MainWindowTitle" echo %%c>>pids.txt


пробую ваш скрипт, однако почему то , даже при запуске с powershell 7.3 он для выполнение требует обновить powershell, что довольно странно учитывая что это последняя версия, но я разберусь с этим и отпишу

Автор: Fantazmat May 21 2023, 7:02

Решил!!!
Изменил формат записи на -

CODE Format
powershell -command "Get-Process -Name exefile | Format-Table -Property MainWindowTitle, id | Out-String | Out-File -Encoding ASCII .\timetotime\pids.txt"

и строку вычитки на
CODE Format
For /F "UseBackQ tokens=1,2,3,4 delims= " %%a in ("%pids%") do if "%%a"=="EVE" echo %%c %%d>pids_new.txt


Задача закрыта, спасибо за помощь Tiger

Автор: Tiger May 22 2023, 16:36

(Fantazmat @ May 21 2023, 8:02) Перейти к цитате

Задача закрыта, спасибо за помощь Tiger

Это не мне, а ChatGPT smile.png

Автор: mussy May 25 2023, 16:53

CharGPT теперь будет более эффективной заменой Stack Overflow =)

Автор: Tiger May 25 2023, 22:34

(mussy @ May 25 2023, 17:53) Перейти к цитате

CharGPT теперь будет более эффективной заменой Stack Overflow =)

Уже и давно. Стаки его запретили уже.
Но эта LLM имеет особенности. Если ты слабо понимаешь что ты хочешь, что тебе реально надо и как ты хочешь это реализовать - это не для тебя. В остальном - это реальный "джарвис".

Invision Power Board
© Invision Power Services