【发布时间】:2015-10-27 10:38:33
【问题描述】:
我要写一个批处理脚本。该脚本读取输入文件的行并为每一行执行一个 sqlcmd。 但是当我执行我的脚本时,它并没有像我想要的那样工作,事实上它并没有完成这项工作......
我的批处理脚本:
@echo off
SETLOCAL EnableDelayedExpansion
set Chemin=C:\users\documents\Communication\Test\MSG_IN
set NomFichierU=UHMSO_1
set user=admin
set pwd=admin
set db=DTBASE_001
cd /d %Chemin%
set nomfic=%NomFichierU%
set HHMMSS=A
set HHMMSS=%LTIME:~0,2%%LTIME:~3,2%%LTIME:~6,2%
for %%f IN (%NomFichierU%*.txt) DO (
for /f tokens^=*^ delims^=^ eol^= %%l IN (%%f) DO (
echo test
REM echo %%l
ECHO %%G
set nomficr=%%a
set nomfic=!nomficr:~0,-1!.tmp
REN %%a !nomfic!
rem executer sript MHUHMS.sql avec sqlplus
sqlcmd -S MILCS02 -U %user% -P %pwd% -d %db% -i c:\users\documents\SQL\MHUHMS.sql
move !nomfic! SLD_SLDHI\SAVE
)
)
而 MHUHMS.SQL 只是在数据库中进行更新。 我的问题是当我执行批处理脚本时,它只是将我放入文件夹'Chemin',但我希望它读取 UHMSO_1_XXXXX.txt 之类的文件。之后,对于我文件的每一行,它都会运行我的 sql 脚本。
此时我的错误: 系统找不到UHMSO_1*.txt文件。
我被放在文件夹中...
如果有人有任何想法,因为我在批处理脚本方面并不是很擅长......而且我也不知道我的 sqlcmd 是否正确......
感谢您的帮助!
编辑:在 wOxxOm 和 MichaelS 的帮助下。
【问题讨论】:
标签: windows batch-file sqlcmd