Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.05.2017
Сообщений: 2

Непредвиденное значение. Вызов команды в цикле

18.05.2017, 14:12. Показов 1160. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу прощения за ламерский вопрос, делаю несложный скрипт (большой опыт bash) на batch и потратил уже уйму времени на казалось бы элементарные вещи. Прошу подсказать мне почему код, когда строка sqlcmd вне цикла - у интерпретатора нет претензий:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@echo off
SETLOCAL EnableDelayedExpansion enableextensions
 
SQLCMD -S (local) -E -Q "BACKUP DATABASE demo TO DISK = 'E:\Stuff\MSSQLBackups\1\demo.bak' WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION"
 
for /f "tokens=*" %%i in (bases.txt) do (
set input=%%i
 
for /f "tokens=* delims= " %%a in ("!input!") do set input=%%a
for /l %%a in (1,1,200) do if "!input:~-1!"==" " set input=!input:~0,-1!
 
if not !input:~-5!==_copy (
 
)
)
 
А когда в цикле:
 
@echo off
SETLOCAL EnableDelayedExpansion enableextensions
 
for /f "tokens=*" %%i in (bases.txt) do (
set input=%%i
 
for /f "tokens=* delims= " %%a in ("!input!") do set input=%%a
for /l %%a in (1,1,200) do if "!input:~-1!"==" " set input=!input:~0,-1!
 
if not !input:~-5!==_copy (
SQLCMD -S (local) -E -Q "BACKUP DATABASE demo TO DISK = 'E:\Stuff\MSSQLBackups\1\demo.bak' WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION"
)
)
То он выдаёт: Непредвиденное появление: -E ?
Как нужно чтобы было?

Прошу прощения, что я безусловно плохо ознакомился с FAQ, но я очень сильно гуглил перед тем как задать вопрос.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2017, 14:12
Ответы с готовыми решениями:

Асинхронный вызов службы: непредвиденное ожидание в работе клента
Добрый день всем! Изучаю WCF и возник такой вопрос. Вот создаю простенькую службу: public interface IStockService { ...

Сообщение об ошибке "Непредвиденное появление: B." при выполнении команды "FOR %B IN (*) DO ..."
бегло прочитал https://www.cyberforum.ru/cmd-bat/thread877664.html не нашел подходящей инфы пишу командуfor %В in (*) do (ffmpeg -i %B...

Ошибка при использовании структуры или непредвиденное поведение (неверное значение переменной)
Добрый вечер. Столкнулся с проблемой при написании программы. Требуется нарисовать линию из символов (в приведённом ниже коде отсутствует...

4
zb
7 / 7 / 0
Регистрация: 08.05.2017
Сообщений: 55
18.05.2017, 17:12
у скобок разный приоритет, закрывается при встрече первой.
0
353 / 165 / 61
Регистрация: 01.06.2015
Сообщений: 656
18.05.2017, 20:46
Windows Batch file
1
2
3
if not !input:~-5!==_copy (
SQLCMD -S (local) -E -Q "BACKUP DATABASE demo TO DISK = 'E:\Stuff\MSSQLBackups\1\demo.bak' WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION"
)
Попробуйте заменить на
Windows Batch file
1
2
3
if not !input:~-5!==_copy (
SQLCMD -S ^(local^) -E -Q "BACKUP DATABASE demo TO DISK = 'E:\Stuff\MSSQLBackups\1\demo.bak' WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION"
)
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
18.05.2017, 23:55
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
SETLOCAL EnableDelayedExpansion enableextensions
 
for /f "delims=" %%i in (bases.txt) do (
 for /f %%j in ("%%i") do (
  set "input=%%j"
  for /l %%n in (1,1,200) do if "!input:~-1!"==" " set "input=!input:~0,-1!"
  if not "!input:~-5!"=="_copy" (
   rem Строка ниже работает отдельно? Сама по себе? И почему в строке (local), не встречал подобных ключей.
   SQLCMD -S (local) -E -Q "BACKUP DATABASE demo TO DISK = 'E:\Stuff\MSSQLBackups\1\demo.bak' WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION"
  )
 )
)
 
pause
0
0 / 0 / 0
Регистрация: 18.05.2017
Сообщений: 2
19.05.2017, 02:32  [ТС]
Да, действительно проблема была в (local). Как до меня вчера это не дошло - скобки же тут элемент синтаксиса )))
Помогло и экранирование (спасибо ixoyz) и замена на localhost (alpap).

Где взял ? ) .Да где - то давно взял - вставил в скрипт - работает. А вот сейчас решил заморочиться и понадобились циклы. Мне конечно большой минус, что не покурил sqlcmd.

Огромное спасибо вам и вашему форуму. Когда FAQ про циклы читал - только там понял почему в цикле надо обращаться к переменной через !переменная! )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2017, 02:32
Помогаю со студенческими работами здесь

Условие выполнения команды в цикле
Здравствуйте! Столкнулся с очень странной ошибкой. Имею двухмерный массив нулей и единиц и двухмерный массив булевых значений. Задача...

Выполнение команды TRACERT в бесконечном цикле
Подскажите, пожалуйста. Можно ли написать какой-либо "скрипт" который будет выполнять постоянный tracert до сервера и сохранять его в...

Вызов команды терминала из программы
Есть ли возможность (и если есть, то как реализовать) из программы вызвать в терминале выполнение какой-нибудь команды. Например: ffplay...

Java: вызов системной команды
как вызвать системную команду из java программы? (Windows)

Вызов команды XCOPY из C#-проекта
Здравствуйте уважаемые форумчане! Из с# проекта вызывается команда Xcopy со следующими параметрами: startInfo.Arguments =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru