|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Ошибка работы скрипта (Непредвиденное появление: and) |
|
CMD/BAT - [решено] Ошибка работы скрипта (Непредвиденное появление: and)
|
Пользователь Сообщения: 124 |
Здравствуйте, написал батник такого содержания:
title TimeSync if "%1"=="" (goto :error) reg import %1 net stop w32time && net start w32time w32tm /resync /rediscover echo Start time test rem Ip-адрес является эталоном времени (то есть с кем сравнивать) rem делаем 4 сравнения w32tm /stripchart /computer:192.168.1.1 /samples:4 echo End goto :last :error echo No reg file was accpted! :last pause Непредвиденное появление: and В чём ошибка? P.S. Без if скритп правильно работает |
|
Отправлено: 07:13, 20-02-2012 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:10, 20-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата DesmondTruman:
А для проверки факта, был ли передан параметр (плюс — проверки существования, если это путь) я предпочитаю использовать иной подход: |
|
Последний раз редактировалось Iska, 20-02-2012 в 17:46. Отправлено: 17:40, 20-02-2012 | #3 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 03:46, 21-02-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать sunnykey, дело в том, что передаваемый в пакетный файл параметр, содержащий символы-разделители (например, пробел — банальный случай для путей), должен быть заключён в кавычки. В противном случае заключать параметр в кавычки не обязательно (но можно).
Пример: Параметры «C:\boot.ini» и «c:\CONFIG.SYS» не содержат символов-разделителей, потому их можно заключать в кавычки, а можно и не заключать (в примере «C:\boot.ini» не заключён в кавычки, а «c:\CONFIG.SYS» — заключён). Параметр же «C:\Program Files\Common Files\Microsoft Shared» содержит символы-разделители (в данном случае — пробел) и, чтобы он был воспринят как один параметр, а не несколько — требуется заключить его в кавычки. Идём дальше. В отличие от ряда языков, в пакетный файл параметры передаются «как есть» — вместе с кавычками (если они были). И это надо учитывать при работе пакетного файла. И вот как раз для того, чтобы иметь возможность унифицировать обработку параметров, как заключённых в кавычки, так и без них — используется тильда: То есть, сначала мы, при помощи тильды, убираем возможные кавычки у переданного параметра, а затем уже сами указываем кавычки. Таким образом, независимо от того, был ли передан параметр с кавычками или без — теперь мы гарантированно получим его унифицированное представление — с кавычками. Цитата sunnykey:
P.S. Про параметры и тильду: |
||
Отправлено: 05:54, 21-02-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Проблема работы скрипта в Windows 7 | Oleg48 | Скриптовые языки администрирования Windows | 4 | 23-06-2011 15:09 | |
Приостановка работы скрипта до нажатия кнопки в программе | Pependos | AutoIt | 0 | 01-10-2010 02:52 | |
Принцип работы скрипта Elastic Trail.au3 | ShogenOFF | AutoIt | 5 | 20-08-2010 22:48 | |
Как уменьшить время работы php скрипта? | buhanov | Вебмастеру | 5 | 15-08-2008 22:21 | |
Как вывести результат работы скрипта | lehha | Вебмастеру | 6 | 14-11-2003 12:59 |
|