1

*.cmd ファイルには次のものがあります。

set /p variable=user input here

そして今、私はこの変数で sth を実行することになっていますが、ユーザーは、エスケープされていない場合に許可されていない文字であっても、ここに何でも入れることができます。この可能性に対処するために、CMDツールボックスに何かありますか。つまり、スクリプトで安全に使用できるように、エスケープされた必要なすべての文字を含む別の変数を (ユーザーが許可されているものと許可されていないものを認識せずに) 自動的に作成することです。

4

1 に答える 1

0

SET / Pは、エスケープされていない特殊文字を含むすべての入力を適切に受け入れます。特殊文字を含む(おそらく)変数を使用するときは、遅延展開を使用する必要があります。

@echo off
setlocal enableDelayedExpansion
set /p "test=Enter something: "
echo test=!test!

SET / Pステートメントの引用符は、特殊文字の入力を許可するために必要ありません。それらは、プロンプトの最後にスペースを有効にするためだけにあります。

于 2012-05-10T11:22:58.527 に答える