我创建了一个批处理脚本,它递归遍历目录下的所有.sql文件。我的问题是,我可以回显使用此版本正确处理的所有文件:
@for /r "%PWD%\06-Instalaciones" %%a in (*.sql) do (IF "C:%%~pa" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" echo %%~fa )
但对于每个处理的sql文件,我似乎无法成功调用SqlPlus而不是echo:
@for /r "%PWD%\06-Instalaciones" %%a in (*.sql) do (IF "C:%%~pa" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" %ORACLE_HOME%/bin/sqlplus -L -S FOO/BAR@%sid% @%%~fa)
我收到以下错误:“(此时HOST意外发生。”。
谢谢。
答案 0 :(得分:1)
感谢安格斯指出我的错误。我的一个变量中有一个空格!特别是%sid%。如果有人需要,我会留下我的代码:
@echo off
@SET PWD=%~dp0
@SET sid=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SID=xxxxx)))
@for /r "%PWD%\06-Instalaciones" %%f in (*.sql) do (IF "C:%%~pf" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" %ORACLE_HOME%/bin/sqlplus -L -S FOO/BAR@"%sid%" @%%~f >> log.txt)