Batch file 如何跳过文件集中的一个文件?

Batch file 如何跳过文件集中的一个文件?,batch-file,sqlcmd,Batch File,Sqlcmd,下面是我在batchfile中的代码: for %%f in (%~dp0*.sql) do ( sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1 ) 问题是该集中有一个文件不能作为第一个文件运行。(因为其他文件是关于创建表的脚本文件,那个文件是要将数据插入表的) 如何在一个批处理文件中实现目标?您可以重命名不能首先运行的sql文件,以便它排序到最后(前缀

下面是我在batchfile中的代码:

for %%f in (%~dp0*.sql) do (
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1
)
问题是该集中有一个文件不能作为第一个文件运行。(因为其他文件是关于创建表的脚本文件,那个文件是要将数据插入表的)


如何在一个批处理文件中实现目标?

您可以重命名不能首先运行的sql文件,以便它排序到最后(前缀为z?)

或者你可以做类似的事情

for %%f in (%~dp0*.sql) do (
  if "%~nxf" neq "fileNameNotToRunFirst.sql" (
    sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1
  )
)
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%~dp0fileNameNotToRunFirst.sql" >>TsDeploy.txt 2>&1

或者您可以创建一个主sql脚本,按照正确的顺序调用其他脚本,如

中所述谢谢您的回答。我明白了。