Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / несколько комманд psql в .bat / 6 сообщений из 6, страница 1 из 1
03.07.2012, 12:04
    #37864179
neznayka33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
как при ошибке не выполнять след. команду?
Код: sql
1.
2.
3.
4.
5.
6.
7.
c:
cd "C:\Program Files\PostgreSQL\9.1\bin"
psql -U admin  -d postgres -w --set ON_ERROR_STOP=on -1 -c "drop database if exists  tmp";
psql -U admin  -d postgres -w --set ON_ERROR_STOP=on -1 -c "create database tmp";
pg_dump -v  -h 192.168.1.1 -U admin work_db > d:/work_db.backup
psql -d tmp -U admin -w --set ON_ERROR_STOP=on -1 < d:/work_db.backup
psql --pset pager=off -U admin -d tmp -w --set ON_ERROR_STOP=on -1 -f "D:\sql\update.sql"
...
Рейтинг: 0 / 0
03.07.2012, 12:24
    #37864206
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
например вместо нескольких
Код: powershell
1.
psql --set ON_ERROR_STOP=on -с ...


сделать одно
Код: powershell
1.
psql -v ON_ERROR_STOP=1 -f "my-sql-batch-file" - h blahblahblah -....
...
Рейтинг: 0 / 0
03.07.2012, 12:27
    #37864210
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
PS хотя когда-то условности и циклы батчили, даже и интерактивность.
т.ч. и в бат можно процедурно "кодить", надо вспомнить как.
...
Рейтинг: 0 / 0
03.07.2012, 12:27
    #37864212
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
neznayka33, Вам наверное лучше спросить в разделе администрирования Windows: http://www.sql.ru/forum/actualtopics.aspx?bid=27
...
Рейтинг: 0 / 0
03.07.2012, 13:06
    #37864292
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
PPS Ёш прав,
но вот наводящий:

пишем бат
Код: powershell
1.
2.
3.
4.
5.
6.
7.
cd "C:\Program Files (x86)\PostgreSQL\8.4\bin"
echo errorlevel=%ERRORLEVEL%
psql -h 192.168.1.5 -U xxxxxx -c "SELECT version()" postgres
echo errorlevel=%ERRORLEVEL%
psql -h 192.168.1.5 -U xxxxxx -c "SELECT version" postgres
echo errorlevel=%ERRORLEVEL%
pause


смотрим echo
Код: powershell
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.
C:\Users\xxx\Documents\Ubuntu>cd "C:\Program Files (x86)\PostgreSQL\8.4\bin"

C:\Program Files (x86)\PostgreSQL\8.4\bin>echo errorlevel=0
errorlevel=0

C:\Program Files (x86)\PostgreSQL\8.4\bin>psql -h 192.168.1.5 -U xxxxxx -c "SE
LECT version()" postgres
                                                 version

--------------------------------------------------------------------------------
-------------------------
 PostgreSQL 8.4.0 on i386-unknown-freebsd6.4, compiled by GCC gcc (GCC) 3.4.6 [F
reeBSD] 20060305, 32-bit
(1 row)



C:\Program Files (x86)\PostgreSQL\8.4\bin>echo errorlevel=0
errorlevel=0

C:\Program Files (x86)\PostgreSQL\8.4\bin>psql -h 192.168.1.5 -U xxxxxx -c "SE
LECT version" postgres
ERROR:  column "version" does not exist
СТРОКА 1:SELECT version
                ^

C:\Program Files (x86)\PostgreSQL\8.4\bin>echo errorlevel=1
errorlevel=1

C:\Program Files (x86)\PostgreSQL\8.4\bin>pause
Для продолжения нажмите любую клавишу . . .

-т.е. errorlevel честно выставляется в 1.

далее поиском по тому подфоруму << IF errorlevel >>

Модератор: Тема перенесена из форума "PostgreSQL".

Модератор: Тема перенесена из форума "PostgreSQL".
...
Рейтинг: 0 / 0
03.07.2012, 17:11
    #37864901
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несколько комманд psql в .bat
neznayka33
Код: sql
1.
2.
3.
4.
5.
6.
psql -U admin  -d postgres -w --set ON_ERROR_STOP=on -1 -c "drop database if exists  tmp" || goto end;
psql -U admin  -d postgres -w --set ON_ERROR_STOP=on -1 -c "create database tmp"; || goto end;
pg_dump -v  -h 192.168.1.1 -U admin work_db > d:/work_db.backup || goto end;
psql -d tmp -U admin -w --set ON_ERROR_STOP=on -1 < d:/work_db.backup || goto end;
psql --pset pager=off -U admin -d tmp -w --set ON_ERROR_STOP=on -1 -f "D:\sql\update.sql" || goto end;
:end

[/quot]
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / несколько комманд psql в .bat / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]