Войти

Показать полную графическую версию : [решено] NirCmd в BAT.


Lucretius
13-02-2013, 21:24
Прошу помощи в решении следующих проблем:
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
13-02-2013, 22:05
На 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
13-02-2013, 22:34
Зачем ты команду засунул в цикл for? »
Для примера я взял
этот (http://forum.oszone.net/post-1491622-2.html) код, добавил только вывод через %errorlevel%.

Foreigner
13-02-2013, 22:54
добавил только вывод через %errorlevel%. »
Так не получится, попробуй:

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
13-02-2013, 23:04
Foreigner спасибо, буду пробовать...

Lucretius
18-02-2013, 20:05
Foreigner, Ваш код заработал в таком виде:
Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga" /V DisplayVersion | Find "Proga 1.2.3" >nul && goto :More Спасибо.

Lucretius
18-02-2013, 22:39
Возник такой вопрос: если запускать батник с правами админа (Win7), то Nircmd работает только из %SystemRoot%.
Возможно ли в этой ситуации заставить Nircmd работать в одной директории с батником %Temp%?

Petya V4sechkin
19-02-2013, 10:17
Nircmd работать в одной директории с батником
"%~dp0nircmdc.exe" параметры




© OSzone.net 2001-2012