CMD/BAT - [решено] NirCmd в BAT.

Ответить
Аватара пользователя
Lucretius

CMD/BAT - [решено] NirCmd в BAT.

Сообщение Lucretius »

Прошу помощи в решении следующих проблем:

1)

Код:

Код: Выделить всё

nircmdc.exe wait 1000
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga" /V DisplayVersion^|Find "Proga 1.2.3"`) Do if %errorLevel%==0 goto More

В приведённом коде игнорируется переход «goto» (при наличии данной ветки реестра), если выше находится команда nircmd. Каким образом можно изолировать команды nircmd от %errorLevel%? Код привёл только в качестве примера.

2)

Существует ли способ реализовать аналогичную инструкцию:



Код:

Код: Выделить всё

nircmdc.exe qboxcom "Вы хотите продолжить ?" "title" xxx >nul
if %errorlevel%==0 goto :check
REM "Нет"
Exit
:check
REM "Да"
echo Код дальше. . .

только без обработки ошибки несуществующей команды «xxx» ?

3)

Возможно ли осуществить перенос строк в окне "This is a message box !"





Код:

Код: Выделить всё

nircmdc.exe infobox "This is a message box !" "message"
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Foreigner »

На 2-ой и третий



Код:

Код: Выделить всё

@echo off
setlocal
nircmdc qboxcom "Do you want ~n to continue" "test" returnval 0xf 
if %errorlevel% equ 15 goto:1
echo exit
exit /b
:1
start calc

А на первый. Зачем ты команду засунул в цикл for?
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Lucretius »

Цитата Foreigner:



Зачем ты команду засунул в цикл for?
CMD/BAT - [решено] NirCmd в BAT.




Для примера я взял

CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.?
код, добавил только вывод через %errorlevel%.
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Foreigner »

Цитата Lucretius:



добавил только вывод через %errorlevel%.
CMD/BAT - [решено] NirCmd в BAT.




Так не получится, попробуй:



Код:

Код: Выделить всё

nircmdc wait 1000
Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga" /V DisplayVersion^|Find "Proga 1.2.3" && goto:More

Или, если через цикл, то задай переменную:



Код:

Код: Выделить всё

for /f "tokens=3" %%i in ('reg query hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga" /V DisplayVersion') do set "ver=%%i"
if "%ver%"=="1.2.3" echo do something
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Lucretius »

Foreigner спасибо, буду пробовать...
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Lucretius »

Foreigner, Ваш код заработал в таком виде:



Код:

Код: Выделить всё

Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga" /V DisplayVersion | Find "Proga 1.2.3" >nul && goto :More

Спасибо.
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Lucretius »

Возник такой вопрос: если запускать батник с правами админа (Win7), то Nircmd работает только из %SystemRoot%.

Возможно ли в этой ситуации заставить Nircmd работать в одной директории с батником %Temp%?
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] NirCmd в BAT.

Сообщение Petya V4sechkin »

Цитата Lucretius:



Nircmd работать в одной директории с батником





Код:

Код: Выделить всё

"%~dp0nircmdc.exe" параметры
Ответить

Вернуться в «Скриптовые языки администрирования Windows»