私は、3 つのテキスト ファイルを SQL Server に bcp する Windows バッチ ファイルを作成中です。運用中に問題が発生した場合に備えて、ファイル名を上書きできるようにしたいと考えています。そこで、次のようなことをしようと考えています。
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
位置パラメータが指定されていない場合に使用するために、3つのファイルすべてにデフォルトの名前を入力できるようにしたいと思います。アイデアとしては、
myjob.bat
パラメータなしでデフォルトを使用するか、
myjob.bat "c:\myfile1" "c:\myfile2" "c:\myfile3"
これらのファイルを使用するようにします。%1、%2、%3 が存在するか、または null であるかを判断する方法がわかりません。また、条件付きでこれらの値を設定する方法もわかりません。これは可能ですか? 何か提案があれば、ぜひお願いします。
ベストアンサー1
コマンドラインパラメータの存在をテストするには、空の括弧を使用します。
IF [%1]==[] echo Value Missing
または
IF [%1] EQU [] echo Value Missing
のIFのSS64ページ「変数が空かどうかをテストする」がここで役立ちます。
位置パラメータを設定することはできないので、次のようにするべきです。
SET MYVAR=%1
その後、その内容に基づいて MYVAR を再設定できます。