/とバッチファイルを呼び出すときにトリガーされるアクションを追加する方法を知っていますか?引数?私はいつも-hを使って用途を表示しましたが、一度は-h argが必要です。/?バッチで切り替えますか?
編集:実は私はこの
for %%i in (%*) do ....
しかし/などの属性を解析して試してみましたか?引数はスキップされましたが、私はあなたのソリューションを試して、それが違うかどうかを見ていきます。
Btwなぜ解析するか%i/? argsはスキップされますか?
/とバッチファイルを呼び出すときにトリガーされるアクションを追加する方法を知っていますか?引数?私はいつも-hを使って用途を表示しましたが、一度は-h argが必要です。/?バッチで切り替えますか?
編集:実は私はこの
for %%i in (%*) do ....
しかし/などの属性を解析して試してみましたか?引数はスキップされましたが、私はあなたのソリューションを試して、それが違うかどうかを見ていきます。
Btwなぜ解析するか%i/? argsはスキップされますか?
を/?
は、単にfor %%i in (%*)
でスキップしているようだが、それはforループのワイルドカードの機能ですが、それはそのファイルを見つけようとします一致すると/?
が失敗します。
「通常の」for-loopには、結果を変更せずに?
または*
を使用することはできません。
SHIFT
コマンドを使用して、すべてのパラメータにアクセスできます。
:parameterLoop
if "%~1"=="/?" call :help
if "%~1"=="-h" call :help
if "%~1"=="-o" call :other
shift
if not "%~1"=="" goto :parameterLoop
あなたはまた、選択したオプションを表示する場合、これは通常、代わりに/?
のヘルプが表示されますよう、あなたは、echoコマンドでの問題を得ました。
echo %1
の代わりにecho(%1
を使用すると、これを回避できます。
コマンドライン引数(%1、%2など)を/?文字列の場合は、ECHO
コマンドを使用してヘルプを表示します。例えば、
@ECHO OFF
IF "%1"=="/?" (
ECHO "Help Line 1"
ECHO "Help Line 2"
) ELSE (
ECHO "Do Your Action"
)
あなたはこの試みることができる:
@echo off
if "%1"=="/?" goto print_help
goto normal_start
:print_help
echo Here is your help
goto end
:normal_start
echo I'm working
:end
+1 '/ I'スイッチを' IF'コマンドに追加します。 –
ありがとうございました:) – kitensei