G
G
Grigory Vasilkov2016-07-27 12:06:50
MySQL
Grigory Vasilkov, 2016-07-27 12:06:50

How to check CMD/Batch file syntax under Windows?

Here such a file writes "an error in the syntax of the command." I don't see any obvious thing.

@ECHO off

SET /p base1=Введите базу экспорта данных ^>
SET /p table=Введите таблицы через пробел или (пусто), если вся база ^>
SET /p base2=Введите базу импорта данных ^>

REM ЭКСПОРТ -- Если введены таблицы
if NOT [%table%] == [] (
  FOR %%i IN (%table%) DO (
    SET filename=%base1%__%%~i.sql.gz
    ECHO Экспортируем таблицу `%%~i` из базы `%base1%` в файл `%filename%`
    mysqldump -h localhost -u USER -pPASS %base1% %%~i | gzip > %filename%
  )
)

REM ИМПОРТ -- Если введены таблицы
if NOT [%table%] == [] (
  FOR %%i IN (%table%) DO (
    SET filename=%base1%__%%~i.sql.gz

    ECHO Удаляем таблицу `%%~i` из базы `%base2%`
    ECHO DROP TABLE IF EXISTS %%~i | mysql -h localhost -u USER -pPASS %base2%

    ECHO Импортируем файл `%filename%` в базу `%base2%`
    gzip -d < %filename% | mysql -h localhost -u USER -pPASS %base2%
  )
)

REM ЭКСПОРТ -- Если не введены таблицы
if NOT [%table%] == [] (
  SET filename=%base1%.sql.gz
  ECHO Экспортируем базу `%base1%` в файл `%filename%`
  mysqldump -h localhost -u USER -pPASS %base1% | gzip > %filename%
)

REM ИМПОРТ -- Если не введены таблицы
if NOT [%table%] == [] (
  SET filename=%base1%.sql.gz

  ECHO Удаляем базу `%base2%`
  ECHO DROP DATABASE IF EXISTS %base2% | mysql -h localhost -u USER -pPASS

  ECHO Импортируем файл `%filename%` в базу `%base2%`
  gzip -d < %filename% | mysql -h localhost -u USER -pPASS %base2%
)

ECHO Успешно выполнено
pause

Tried like this:
@echo off

SET /p base1 =Введите базу экспорта данных ^>
SET /p table =Введите таблицы через пробел или (пусто), если вся база ^>

REM ЭКСПОРТ -- Если введены таблицы
IF NOT [%table%]==[] (
  FOR %%i IN (%table%) DO (
    echo %%~i
  )
)

ECHO Успешно выполнено
pause

outputs nothing as expected for input [1] = base, [2] =text text2

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Andrew, 2016-07-27
@gzhegow

Read about SetLocal EnableDelayedExpansion, it seems to me that all your problems are related to it.
For example, in this example, everything was very similar - Why does the variable behave so strangely in the for loop?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question