OK、以前の質問で削除された投稿を見て、問題を把握しました。削除された返信 (コメントまたは質問への編集である必要があります) で、次のように述べました。
みんなありがとう、私は期待していなかったものを見ただけでしたが、うまくいきました。コマンドラインの一部に、変更したくない番号1、2、および3があるようです。コマンド ライン パラメータ 3 から 26 をこのように変更するだけでよいので、それに取り組みます。
もう 1 つの注意点は、/*、*/、および # をコマンド ラインに直接入力しようとしたため、このメソッドに移動したことです。取得していた戻り変数は、コンピューターからのファイル名でした。バックスラッシュが何らかの形でファイル名として解釈されていたと思います。
/*、*/、および # をコマンド ラインで直接使用し、それらを変数として適切に取り込む方法はありますか? そうでない場合は、番号付け方法にとどまります。
その質問のコードを見ると、FOR ループを介して引数を反復しようとしていることがわかります。*
引数にorが含まれていない限り、これはうまく機能します?
。残念ながら、これらの文字をエスケープして目的の結果を得る方法はありません。
私が知っている唯一の良い解決策は、SHIFT を使用して GOTO ループを使用して引数を繰り返すことです。
@echo off
setlocal
set n=0
:parseArgs
set /a n+=1
(set arg%n%=%1)
if defined arg%n% (
shift /1
goto :parseArgs
)
::display the parsed arguments
set arg