以数字顺序运行sql脚本

时间:2014-07-16 11:49:08

标签: batch-file cmd

我有一个cmd脚本,可以创建数据库并在文件夹中运行脚本。我有一个问题,当我有脚本1到100 - 它没有顺序运行它们。它似乎运行1-10然后100然后11运行。如何让它以数字顺序运行脚本?

for %%F IN (%currentdir%\MyScripts\*) do (
@echo %%F
%sqlRunner% -S %dbServer%  -U %username% -P %password% -d %dbName% -i %%F -b
if ERRORLEVEL 1 GOTO ERROR)

1 个答案:

答案 0 :(得分:0)

正如上面提到的@Gordon,您可以使用零填充来解决您的问题。您正在使用它,因为您的脚本首先从最小的字符串开始按升序获取名称。如果您的脚本名称:

script1 < script2 .... < script10 < script100 < script11 ... < script99  (just string comparison)

这清楚地说明了为什么要按顺序运行脚本的问题。

但是这个问题可以通过零填充来修复,如下面的字符串顺序所示:

script001 < script002 ... < script 010 ...< script050 ... < script100 (just string comparison)

因此脚本现在将按顺序执行。