90年代半ばに戻って、私はこのようなことをしたことを覚えています:
if %1==. dir
基本的に、上記のコードをdodir.bat
し、パラメータを渡さずに単独で実行すると、dirコマンドが実行されます。ただし、パラメーターとして何も渡した場合、dirコマンドは実行されません。
Windows 7のバッチファイルでこれを機能させることができないようです。多分私は正しい構文を覚えていません。ヘルパーはいますか?
実はif %1.==. command
(.
後%1
)当時。これでWindows 7で使用できるようになり、動作するはずです。
使用例:
if %1.==. (
echo No parameters have been provided.
) else (
echo Parameters:
echo %*
)
if %1.==. dir
は、パラメータに"
、<
など
if "%1"==""
は、パラメーターに引用符("
)。
使用する if "%~1"==""
代わりに:
if "%~1"=="" (
echo No parameters have been provided.
) else (
echo Parameters: %*
)
これは、WindowsとDOSのすべてのバージョンで機能します。
単体テスト:
C:\>test
No parameters have been provided.
C:\>test "Lots of symbols ~@#$%^&*()_+<>?./`~!, but works"
Parameters: "Lots of symbols ~@#$%^&*()_+<>?./`~!, but works"
引用符で囲みます。
if "%1"=="" (
echo "nothing was passed"
) else (
echo "a parameter was passed"
dir
)
あなたはエコーを取り除くことができます、私は単に教育目的のためにそれらをそこに置きます。