475

ユーザー入力を受け入れ、その入力の結果を追加コマンドの呼び出しの一部として使用したい Windows .bat ファイルがあります。

たとえば、ユーザーからプロセス ID を受け取り、その ID に対して jstack を実行して、jstack 呼び出しの結果をファイルに入れたいとします。しかし、これを試してみると、うまくいきません。

サンプルのバッチ ファイルの内容は次のとおりです。

@echo off
set /p id=Enter ID: 
echo %id%
jstack > jstack.txt

jstack.txt に表示される内容は次のとおりです。

ID を入力してください: バッチ ジョブを終了しますか (Y/N)? 
4

14 に答える 14

560

これを試して:

@echo off
set /p id="Enter ID: "

%id%のような別のバッチ ファイルへのパラメータとして使用できますjstack %id%

例えば:

set /P id=Enter id: 
jstack %id% > jstack.txt
于 2009-08-03T18:02:13.997 に答える
117

構文は次のとおりです。set /p variable=[string]

http://commandwindows.com/batch.htmまたはhttp://www.robvanderwoude.com/userinput.phpをチェックして、さまざまなバージョンの Windows OS バッチ ファイルを使用したユーザー入力の詳細を確認してください。

変数を設定したら、次の方法でそれを使用できます。

@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%

%VariableName%構文に注意してください

于 2012-07-28T03:01:17.403 に答える
35

これがすべてのバージョンの Windows に当てはまるかどうかはわかりませんが、私が所有している XP マシンでは、次を使用する必要があります。

set /p Var1="Prompt String"

引用符で囲まれたプロンプト文字列がないと、テキストに応じてさまざまな結果が得られます。

于 2011-10-03T15:56:52.147 に答える
15
@echo off
set /p input="Write something, it will be used in the command "echo""
echo %input%
pause

私があなたが望むものを手に入れれば、これはうまくいきます。他のコマンドでも %input% を使用できます。

@echo off
echo Write something, it will be used in the command "echo"
set /p input=""
cls
echo %input%
pause 
于 2014-06-05T17:20:21.067 に答える
8
@echo off
:start
set /p var1="Enter first number: "
pause
于 2014-01-29T10:09:58.020 に答える
5

クライアントに PC を準備するときに使用する小さな cmd があります。入力のためにユーザーを呼び出し、PC の名前をそれに変更します。

@ECHO "remember to run this as admin."
@ECHO OFF
SET /P _inputname= Please enter an computername:
@ECHO Du intastede "%_inputname%"
@ECHO "The pc will restart after this"
pause
@ECHO OFF
wmic computersystem where name="%COMPUTERNAME%" call rename name="%_inputname%"

shutdown -r -f
于 2018-02-09T14:41:56.377 に答える
3

変数の周りのドル記号は、私の Vista マシンでは機能しませんが、パーセント記号は機能します。また、「set」行の末尾のスペースは、プロンプトとユーザー入力の間に表示されることに注意してください。

于 2012-07-31T15:53:45.897 に答える
2

ちょうど追加しました

set /p NetworkLocation= Enter name for network?

echo %NetworkLocation% >> netlist.txt

私のnetshバッチジョブへのシーケンス。そのサンプルのポイントとして応答する場所が表示されます。私は継続的に >> 出力ファイルを調べたので、「自宅」、「職場」、「スターバックス」などがわかるようになりました。澄んだ空気を探して、使用率が最も低いチャネルと、2.4 MHz WLAN が 5 つあるのか、それとも 2.4 MHz のすべての WLAN があるのか​​を調べます。

于 2015-04-13T06:26:29.063 に答える
2

変数のデフォルト値を保持するだけです。Enter を押して、最近実行した .bat のデフォルトを使用します。

@echo off
set /p Var1=<Var1.txt
set /p Var1="Enter new value ("%Var1%") "
echo %Var1%> Var1.txt

rem YourApp %Var1%

最初の実行では、変数の初期値を持つファイルがないというメッセージを無視してください (または手動で Var1.txt を作成してください)。

于 2017-01-25T08:54:07.427 に答える