@gsaw

Как в bat файле передать несколько команд через pipe?

Привет,

хочу написать батник, который бы экспортировал пару таблиц из базы postgres

Что то вроде этого

(
echo \copy (select * from part_manager.deltaresultstart) to '%CSVDIR%\part_manager.deltaresultstart.dump' with (format binary); 
echo \copy (select * from part_manager.vehicledataresult) to '%CSVDIR%\part_manager.vehicledataresult.dump' with (format binary);
) psql -h %DBHOST% -p %DBPORT% -U %USERNAME% -d %DBNAME% -a


Проблема в том, что так не работает, я получаю ошибку

"to was unexpected at this time."

Я так пролагаю, что cmd интерпретирует все это как набор команд. Я пробовал заворачивать строку в двойные ковычки

echo "\copy (select * from part_manager.deltaresultstart) to '%CSVDIR%\part_manager.deltaresultstart.dump' with (format binary);"

Но в таком случае echo так и выдает ее в пайп с ковычками. Не хочу из за двух строк городить два файла, хочу в одном флаконе. Должно же как то это работать.

Спасибо
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
@gsaw Автор вопроса
Ах, перерисал как

psql -h %DBHOST% -p %DBPORT% -U %USERNAME% -d %DBNAME% -a -n ^
    -c "\copy (select * from part_manager.deltaresultstart) to '%CSVDIR%\part_manager.deltaresultstart.dump' with (format binary);" ^
    -c "\copy (select * from part_manager.vehicledataresult) to '%CSVDIR%\part_manager.vehicledataresult.dump' with (format binary);"


Так тоже работает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы