33

コンピューターでのcmdの問題を回避するためにバッチファイルを作成したいのですが、そのためには、Stringユーザー入力を取得してコマンドとして実行できる必要があります。

基本的に私ができるようにしたいのは、バッチファイルが入力を要求したときにコマンドを入力し、Pythonのosモジュール(クラス?)と同様に、コンピューターにそのコマンドを実行させることです。

4

4 に答える 4

49

文字列を変数に割り当ててから、プログラムであるかのように変数を「実行」するだけです。

例えば

set  myvar=ECHO Hello, World!
%myvar%
于 2013-03-27T12:16:59.580 に答える
6

コマンドを使用して、set /p入力を求めます。このコマンドはメッセージも表示します。例:

@echo off
set "command=dir"
set /p "command=type in a command: "
echo.command is: %command%
echo.press any key or ^<CTRL+C^> to abort . . .
>nul pause
%command%
于 2013-03-27T13:32:40.433 に答える
3

最も単純な方法でset /pは、コマンドの入力を求め、環境変数を結果に設定してから、環境変数を単独で展開すると、OSがコマンドとして実行しようとします。

SET /P COMMAND=Command:
%COMMAND%
于 2013-03-27T14:10:11.680 に答える
0

バッチforループを使用できます。これは、コマンドプロンプトで機能しますが、PowerShellでは機能しません。

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>FOR /F "delims=" %i IN ('python -c "print('set wow=yep')"') DO set toexec=%i

C:\Users\Administrator>set toexec=set wow=yep

C:\Users\Administrator>%toexec%

C:\Users\Administrator>echo %wow%
yep
于 2015-09-12T00:37:55.470 に答える