0

バッチファイルがあり、この「mybatch.bat -rc:\ mydir」のように呼び出す必要があります。バッチファイルはディレクトリをループし、ファイル名を出力に書き込みます。私が直面している問題は、パラメータ「-r」を読み取れないことです。

外観は次のとおりです。

@echo off
echo [%date% %time%] VERBOSE    START
for %%X in (%1\*.xml) do echo [%date% %time%] VERBOSE    systemmsg Parsing XML file '%%X'
echo [%date% %time%] VERBOSE    END

ただし、%1の代わりに%2を使用でき、すべて正常に機能しますが、パラメーターで読み取りたいと思います。これは可能ですか?

乾杯!

4

3 に答える 3

4

私はあなたの問題を完全に理解しているわけではありません。%1この場合は明らかにであり、どちらを使用する必要があり-rます。%2c:\mydir

-rユーザーが最初に指定することを確認したい場合は、次のようなものを使用できます。

@echo off
if not "x%1"=="x-r" (
    echo [%date% %time%] ERROR Called without -r
    goto :eof
)
echo [%date% %time%] VERBOSE    START
for %%X in (%2\*.xml) do echo [%date% %time%] VERBOSE systemmsg Parsing file '%%X'
echo [%date% %time%] VERBOSE    END

-rオプションの場合、多くの場合、次のことができます。

set fspec=%1
set rflag=no
if "x%fspec"=="x-r" (
    set fspec=%2
    set rflag=yes
)

次に、とを使用rflagfspecます。

真の位置に依存しないパラメーター解析をバッチで実行するのは簡単な作業ではありません。私たちはそれを行うサブシステムを持っていますが、残念ながらそれは独自のものです。私それが約80余りの線を横切って走り、世界で最速の獣ではないことをあなたに伝えます。

私のアドバイスは、位置に依存しないパスをたどるのではなく、引数形式の厳密な要件を課すことです。あなたはあなた自身に多くの面倒を省くでしょう:-)

于 2010-08-06T22:14:05.460 に答える
0

mybatch.bat c:\mydirバッチファイルを単純に として呼び出してから、単に評価して完了できないのはなぜ%1ですか?

于 2010-08-07T17:11:39.987 に答える
0

バッチファイルの唯一の目的がファイル名を出力に書き込むことである場合、単に使用できませんdir /b /sか?

于 2010-08-07T17:16:16.423 に答える