查找目录中的所有 .sql-Files 并使用 sqlcmd 执行它们
Find all .sql-Files in a Directory and execute them with sqlcmd
我仍然是 CMD 初学者,我想将目录结构中包含 sqlcmd 的所有 SQL 文件导入我的数据库。
如果我将所有 *.sql 复制到根文件夹中,则以下命令有效:
@ECHO ON
FOR %%G in (*.sql) DO sqlcmd /S *SERVER* /d *DB* /U *USER* /P *PW* -i"%%G" > LOG_lastrun.txt 2> LOG_errors.txt
pause
@ECHO ON
FOR /F "tokens=1 delims=sql" %%G in (*.sql) DO sqlcmd /S *SERVER* /d *DB* /U *USER* /P *PW* -i"%%G" > LOG_lastrun.txt 2> LOG_errors.txt
pause
不幸的是,它对我的 FOR /F 循环不起作用。你能帮我吗?
FOR /F
的工作方式不同。它运行一个命令。 Jusr *.sql
不是命令。另外,我怀疑您想使用 >>
.
连接 stdout 和 stderr 输出
@ECHO ON
SET "SERVER_NAME=*SERVER*"
SET "DB_NAME=*DB*"
SET "LOGIN_ID=*USER*"
SET "PASS=*PW*"
FOR /F "delims=" %%G IN ('DIR /B "*.sql"') DO (
sqlcmd -S %SERVER_NAME% -d %DB_NAME% -U %LOGIN_ID% -P %PASS% -i "%%~G" >> LOG_lastrun.txt 2>> LOG_errors.txt
)
pause
我仍然是 CMD 初学者,我想将目录结构中包含 sqlcmd 的所有 SQL 文件导入我的数据库。
如果我将所有 *.sql 复制到根文件夹中,则以下命令有效:
@ECHO ON
FOR %%G in (*.sql) DO sqlcmd /S *SERVER* /d *DB* /U *USER* /P *PW* -i"%%G" > LOG_lastrun.txt 2> LOG_errors.txt
pause
@ECHO ON
FOR /F "tokens=1 delims=sql" %%G in (*.sql) DO sqlcmd /S *SERVER* /d *DB* /U *USER* /P *PW* -i"%%G" > LOG_lastrun.txt 2> LOG_errors.txt
pause
不幸的是,它对我的 FOR /F 循环不起作用。你能帮我吗?
FOR /F
的工作方式不同。它运行一个命令。 Jusr *.sql
不是命令。另外,我怀疑您想使用 >>
.
@ECHO ON
SET "SERVER_NAME=*SERVER*"
SET "DB_NAME=*DB*"
SET "LOGIN_ID=*USER*"
SET "PASS=*PW*"
FOR /F "delims=" %%G IN ('DIR /B "*.sql"') DO (
sqlcmd -S %SERVER_NAME% -d %DB_NAME% -U %LOGIN_ID% -P %PASS% -i "%%~G" >> LOG_lastrun.txt 2>> LOG_errors.txt
)
pause