2012-12-01 8 views
0

Windows cmd에서는 < 연산자를 사용하여 파일에서 명령 입력을 읽습니다. (필자는 .BAK 파일 이름을 변경해야하기 때문에)"<"연산자 대체

.backup '..\database_backup\2012-11-30-16-16-28.bak' 

매번, 나는 새로운 command.txt 파일을 생성 :

sqlite3 mydatabase.sqlite < command.txt 

sqlite3를 응용 프로그램과 command.txt의 내용이입니다 그런 다음 < 연산자를 사용하여 sqlite3.exe에 제공합니다. command.txt 생성을 우회하여 모든 입력 매개 변수를 sqlite3.exe에 직접 공급할 수있는 방법이 있습니까?

답변

0

이 시도 :

echo ".backup '..\database_backup\2012-11-30-16-16-28.bak'" | sqlite3 mydatabase.sqlite 

나이 :

sqlite3 -cmd ".backup '..\database_backup\2012-11-30-16-16-28.bak'" mydatabase.sqlite < NUL 
+0

고마워요! 그것은 작동합니다. 나는 또 다른 문제가있다. 명령을 실행할 때 sqlite.exe에 잘못된 매개 변수를 제공하더라도 리턴 코드로 항상 0을 얻습니다. 예를 들어 의도적으로 데이터베이스 이름을 mydatabase2.sqlite (존재하지 않음)로 변경하면 오류가 발생하지 않으며 반환 코드는 여전히 0입니다! 네가 나 한테 이것에 대한 힌트를 주면 고마워. – ManiAm

+1

sqlite3은 이미 존재하지 않는 이름을 지정하면 새 데이터베이스 파일을 만듭니다. 이 경우 실패 할 SQL 명령을 실행해야합니다. 예 : 'sqlite3 mydatabase.sqlite'select * from someTableThatShouldExist 0 = 1; 백업 'backupfilename' "' –

1

documentation에서, 나는 시도를하려는 :

이 또한 할 수있다
echo .backup '..\database_backup\2012-11-30-16-16-28.bak' | sqlite3.exe mydatabase.sqlite 

작업 :

sqlite3.exe mydatabase.sqlite ".backup '..\database_backup\2012-11-30-16-16-28.bak'"