
バッチ ファイルで、アンダースコアの後に変数を呼び出そうとしています。しかし、アンダースコアの後に追加された変数は認識されません。
set /p X=Folder name:%=%
mkdir Delta_%X%
そのため、Windows は上記のコードに対して Delta_{X にユーザーが指定したフォルダー名} ではなく Delta_ という名前のディレクトリを作成していました。
この状況を回避するために、別の変数にアンダースコアを割り当て、両方の変数を呼び出しましたが、正常に動作しました。この問題を処理する別の(正しい)方法があるかどうかを確認したいと思いました。
回避策:
set /p X=Folder name:%=%
set Z=_
mkdir Delta%Z%%X%
答え1
どちらの方法でもアンダースコアを追加しても問題はありません。ただし、%X%
次のように変数にアンダースコアを追加することもできます。
set /p X=Folder name:
set X=_%X%
または、次のように Delta_ を追加することもできます。
set X=Delta_%X%
もちろん、実際のユーザー入力を後で使用するために保存する必要がある場合は、これを実行しなくてもかまいません。その場合は、代わりに次の操作を実行できます。
set /p X=Folder name:
set Y=Delta_%X%
echo user entered: %X%
mkdir %Y%