|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Некорректная работа оператора сравнения "neq" |
|
CMD/BAT - [решено] Некорректная работа оператора сравнения "neq"
|
Пользователь Сообщения: 65 |
Включил в батник следующие строки:
For /F "Tokens=2,*" %%i In ('2^>nul Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V InstallLocation') Do if /i "%%j" neq "%~dp0" Goto label Помогите разобраться с чем это может быть связано. |
|
Отправлено: 18:09, 22-05-2013 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Объясните, а зачем указывать в качестве разделителей - используемые по умолчанию?
Выдержка из справки(Win7): " delims=xxx - набор разделителей вместо используемых по умолчанию пробела и знака табуляции." Как я уже отмечал выше, если в подобных случаях(обработка результатов команд reg.exe) не указывать разделитель, скрипты работают одинаково правильно на обоих осях. Вот наткнулся на скрипт где в качестве разделителей указаны и табуляция и пробел, можно сказать универсальный вариант, но опять же - без указания разделителей работает ничуть не хуже. При каких условиях это может иметь значение? |
Последний раз редактировалось Lucretius, 05-06-2013 в 22:32. Отправлено: 19:27, 04-06-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Lucretius:
|
|
Отправлено: 19:45, 04-06-2013 | #12 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Ещё такой вопрос, приведённые выше скрипты можно реализовать двумя способами:
1. For /f "usebackq Tokens=2* Delims= " %%I In (`2^>nul REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CCleaner" /V "InstallLocation" ^| find.exe /i "REG_SZ"`) Do Set loc=%%~J |
Отправлено: 22:32, 05-06-2013 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Lucretius, в данном случае «оба лучше».
Пример, когда «usebackq» «лучше»: |
Отправлено: 02:59, 06-06-2013 | #14 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Iska, спасибо Вам за внимание к теме и оперативность в ответах. По поводу "usebackq", - назначение новой семантики мне понятно, меня смущало применение её там, где в ней нет необходимости.
Последний вопрос: Внутри цикла - For /f "Tokens=2* Delims= " %%I In ('2^>nul REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CCleaner" /V "InstallLocation" ^| find.exe /i "REG_SZ"') Do if /I "%%J" NEQ "%~dp0" GoTo label вынес значение в переменную за пределы цикла: так вот, можно ли упростить этот код(точнее вторую его часть), при соблюдении всех условий? |
Отправлено: 22:53, 10-06-2013 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:55, 10-06-2013 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Ошибка просмотра фото - "прекращена работа программы "COM SURROGATE" | illusionmgs | Хочу все знать | 4 | 18-03-2014 19:20 | |
Всплывает сообщение "Прекращена работа программы "Hosts file cleaner" | AlexPSPb | Лечение систем от вредоносных программ | 4 | 08-01-2012 14:33 | |
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? | verdix | Microsoft Windows 2000/XP | 3 | 03-10-2009 23:46 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|