CMD/BAT - Составить скрипт с условием

Аватара пользователя
Firebolt

CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Вот такой вот пишу скрипт:





Код:

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

@ echo off  IF NOT EXIST %windir%\logo2.bmp (     
REGEDIT /S \\svrmain\prog\logonwp.reg 
copy /Y \\svrmain\prog\logo2.bmp %windir%    
) ELSE (  
exit  
)

Тут все работает, но нужно добавить нюанс. Что-то типа условия в условии. Если словами, то... Когда файл logo2 не найден, то добавить такое-то измение реестра... А потом еще одно условие: если изменение не было внесено в реестр, тогда goto end - пропускаем копирование файла logo2. Вот как это условие записать про изменения в реестре?
Аватара пользователя
Firebolt

Re: CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Firebolt, с помощью Reg Query можно проверить (внесено ли изменение), как-то так:



Код:

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

REG QUERY "раздел" /V "параметр" && copy /Y \\svrmain\prog\logo2.bmp %windir%

Оператор && выполняет следующую команду в том случае, если предыдущая завершилась успешно.
Аватара пользователя
Firebolt

Re: CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Petya V4sechkin, а почему REG QUERY? Можно мне вставить туда же в





Код:

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

REGEDIT /S \\svrmain\prog\logonwp.reg 
copy /Y \\svrmain\prog\logo2.bmp %windir%

&& ? Чтобы получилось





Код:

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

REGEDIT /S \\svrmain\prog\logonwp.reg &&
copy /Y \\svrmain\prog\logo2.bmp %windir%

???
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - Составить скрипт с условием

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

Firebolt, с помощью Reg Query можно проверить (внесено ли изменение), как-то так:



Код:

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

REG QUERY "раздел" /V "параметр" && copy /Y \\svrmain\prog\logo2.bmp %windir%

Оператор && выполняет следующую команду в том случае, если предыдущая завершилась успешно.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - Составить скрипт с условием

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

Firebolt, потому что Regedit не возвращает ошибок (ErrorLevel = 0).

После && не должно быть перевода строки (обе команды в одной строке).
Аватара пользователя
Firebolt

Re: CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Petya V4sechkin, чего только не пробовал, не получается у меня изменения внести в реестр. Может поможете мне? Применяю следующий твик:





Код:

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

"Wallpaper"="C:\\Windows\\logo2.bmp"
"WallpaperStyle"="2"
"OriginalWallpaper"="C:\\Windows\\logo2.bmp"
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - Составить скрипт с условием

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

Firebolt, прям так и применяете?

Почему бы в нормальном виде не сделать?



Код:

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

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"Wallpaper"="C:\\Windows\\logo2.bmp"
"WallpaperStyle"="2"
"OriginalWallpaper"="C:\\Windows\\logo2.bmp"
Аватара пользователя
Firebolt

Re: CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Petya V4sechkin, потому что мне необходимо условие - если изменения не вносятся, тогда скрипт не должен отрабатывать дальше. А если вносятся, тогда скрпит работает дальше и копирует файл. Этот файл в последствии является маркером. И при повторном запуске, если этот файл уже имеется в наличии, скрипт вообще не будет отрабатываться. Весь этот скрипт прописан в групповой политеке и запускается каждый раз при логоне пользователя. Взглянув на пример, приведенный в первом посте, вы поймете о чем я говорю. И тот пример работает уже. Но нужно поправить один нюанс, как я писал выше.
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - Составить скрипт с условием

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

Firebolt, фрагмент из 5-го поста не похож на фрагмент из 6-го.

Вы пишете:


Цитата Firebolt:



не получается у меня изменения внести в реестр.



А я вам отвечаю, что твик из 6-го поста вносит изменения.
Аватара пользователя
Firebolt

Re: CMD/BAT - Составить скрипт с условием

Сообщение Firebolt »

Petya V4sechkin, у меня не получается внести изменения в реестр при помощи команды REG QUERY из командной строки! Да, мой 5 пост предполагал, что вы помните, о чем идет речь. Прошу прощения, не подумал.



В общем, я хочу внести вот эти вот изменения в реестр





Код:

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

[HKEY_CURRENT_USER\Control Panel\Desktop]
"Wallpaper"="C:\\Windows\\logo2.bmp"
"WallpaperStyle"="2"
"OriginalWallpaper"="C:\\Windows\\logo2.bmp"

из коммандной строки, для того чтобы получить этот самый ErrorLevel, который даст мне возможность использовать оператор &&.
Ответить

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