バッチスクリプトで2つのことを行いたいとします。1つのパラメータまたは他のパラメータを使用すると指定したファイルをバッチで使用する
最初のパラメータは1つのパラメータまたはそれ以外のパラメータのみを使用します。つまり、次のようになります。
C:\> foo.bat file.txt /A
/A commands here.
C:\> foo.bat file.txt /B
/B commands here.
C:\> foo.bat file.txt /A /B
ERROR: Either /A or /B can be specified only.
C:\> foo.bat file.txt /B /A
ERROR: Either /A or /B can be specified only.
そして、2番目のコマンドは、指定されたファイルを使用してコマンドを実行します。つまり、次のようになります。
C:\> bar.bat file.txt /A
file.txt has been archived.
私はこれを行うためのコードを書こうとしましたが、あまりにも遠くはありません。ここに私の仕事はこれまでです:
if /i [%~f1] == [FILE] set usedfile=[FILE]
if /i [%1] == [] goto error
if /i [%2] == [/A] set "A_or_B=A"
if /i [%2] == [/B] set "A_or_B=B"
そして%usedfile%がちょうどcopy
で別の場所にコピーされます。
開始方法がわからない場合は、https://ss64.com/nt/syntax-args.htmlとhttps://ss64.com/nt/if.htmlを読んでください(続き)。 – JosefZ
これには、cmdスクリプト(.batファイル)コードを記述する必要があります。 PowerShellでパラメーターセットを使用することで、相互排他を自由に得ることができます。 – lit
助けてくれてありがとう。だから私はもう少し手に入れました。これまでのコードに元の質問に自分のコードを追加しました。 – ditheredtransparency