【发布时间】:2010-10-18 09:30:01
【问题描述】:
我正在处理一个 Windows 批处理文件,它将三个文本文件 bcp 到 SQL Server 中。如果生产中出现问题,我希望能够覆盖文件名。所以我正在考虑做这样的事情。
bcp.exe MyDB..MyTable1 in %1 -SMyServer -T -c -m0
bcp.exe MyDB..MyTable2 in %2 -SMyServer -T -c -m0
bcp.exe MyDB..MyTable3 in %3 -SMyServer -T -c -m0
我希望能够为所有三个文件输入默认名称,以便在未提供位置参数时使用。这个想法是要么执行
myjob.bat
不带参数,让它使用默认值,或者执行
myjob.bat "c:\myfile1" "c:\myfile2" "c:\myfile3"
并让它使用这些文件。我无法弄清楚如何判断 %1、%2 和 %3 是否存在和/或是否为空。我也不知道如何有条件地设置这些值。这可能吗?任何建议将不胜感激。
【问题讨论】:
-
任何对使用默认值实现可选脚本参数感兴趣的人都应该查看this answer 以了解有关Windows Bat file optional argument parsing 的问题
标签: windows batch-file