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

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

Lucretius 13-02-2013 21:24 2089841

NirCmd в BAT.
 
Прошу помощи в решении следующих проблем:
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 2089867

На 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 2089896

Цитата:

Цитата Foreigner
Зачем ты команду засунул в цикл for? »

Для примера я взял
этот код, добавил только вывод через %errorlevel%.

Foreigner 13-02-2013 22:54 2089917

Цитата:

Цитата Lucretius
добавил только вывод через %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 2089927

Foreigner спасибо, буду пробовать...

Lucretius 18-02-2013 20:05 2093659

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 2093806

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

Petya V4sechkin 19-02-2013 10:17 2094087

Цитата:

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

Код:

"%~dp0nircmdc.exe" параметры


Время: 10:14.

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