Компьютерный форум 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=264208)

Kellem 12-07-2013 14:12 2183644

Параметр запуска
 
Всем привет!
Такой вопрос:
запущено определённое приложение, с определённым параметром, который можно узнать/сохранить через:
Код:

wmic process where name="MiniStudio.exe" get commandline > C:\info.txt
При этом, файл info.txt, сохраняется в кодировке Unicode (UCS-2 little endian).
Можно ли как-то изменить кодировку сохранения этого файла? Требуется Windows-1251 (ANSI).

Или другой вариант:
возможно ли перезапустить приложение, с узнанным параметром, одним батником?
То есть сначала узнаётся с каким параметром запущен процесс, потом закрывает его и снова запускает с тем же параметром (в параметре могут быть пробелы).

Iska 12-07-2013 17:37 2183771

Цитата:

Цитата Kellem
Можно ли как-то изменить кодировку сохранения этого файла? Требуется Windows-1251 (ANSI). »

Пропустите вывод «wmic.exe» через пустой фильтр:
Код:

>"c:\info.txt" (wmic.exe Process where "name='MiniStudio.exe'" get CommandLine|find.exe /v "")
Цитата:

Цитата Kellem
Или другой вариант:
возможно ли перезапустить приложение, с узнанным параметром, одним батником?
То есть сначала узнаётся с каким параметром запущен процесс, потом закрывает его и снова запускает с тем же параметром (в параметре могут быть пробелы). »

Объясните смысл сего действа.

Kellem 12-07-2013 18:27 2183804

За первый вариант - спасибо! Работает. Строка получается:
Код:

CommandLine                      "C:\SetPower\Studio\MiniStudio.exe"
нельзя ли оттуда вырезать начало: CommandLine с пробелами, чтобы строка начиналась с "C:\ ..... ?

Цитата:

Объясните смысл сего действа.
Образно говоря так:
программа "A" - это некое меню с выбором разных программ.
При выборе программы, запускается программа "B", которая проверяет наличие обновлений для запущенной, выбранной программы и одновременно запускает её, например это программа "С". Но запускает её с ключом, который генерируется на сервере и он переодически меняется (проверка лицензии). Если после этого закрыть диспетчером "А" или "B", то и основная прога "С" тоже закрывается.
Если посмотреть командную строку запуска, то можно всё закрыть и запустить программу "С" с присвоенным ей параметром, без первых двух.

Комп весьма слабый и с этим деревом А+B+C всё тормозит. Если запустить просто "С", то тормозов нет, но без параметра-ключа не запустить.

Iska 12-07-2013 18:53 2183825

Надеюсь, что понял. Смутно, но понял.

Полагаю, Вам будет гоже нечто подобное (в примере я использовал «notepad.exe» в качестве процесса):
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
        `wmic.exe Process where "name='notepad.exe'" get CommandLine /value ^| find.exe /i "CommandLine"`
) do set "s%%i"

if defined sCommandLine echo Command line: [%sCommandLine%]

endlocal
exit /b 0


Kellem 13-07-2013 18:12 2184199

Iska, огромное спасибо! Всё работает как надо :good:


Время: 05:56.

Время: 05:56.
© OSzone.net 2001-