コンピューターでのcmdの問題を回避するためにバッチファイルを作成したいのですが、そのためには、Stringユーザー入力を取得してコマンドとして実行できる必要があります。
基本的に私ができるようにしたいのは、バッチファイルが入力を要求したときにコマンドを入力し、Pythonのosモジュール(クラス?)と同様に、コンピューターにそのコマンドを実行させることです。
コンピューターでのcmdの問題を回避するためにバッチファイルを作成したいのですが、そのためには、Stringユーザー入力を取得してコマンドとして実行できる必要があります。
基本的に私ができるようにしたいのは、バッチファイルが入力を要求したときにコマンドを入力し、Pythonのosモジュール(クラス?)と同様に、コンピューターにそのコマンドを実行させることです。
文字列を変数に割り当ててから、プログラムであるかのように変数を「実行」するだけです。
例えば
set myvar=ECHO Hello, World!
%myvar%
コマンドを使用して、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%
最も単純な方法でset /p
は、コマンドの入力を求め、環境変数を結果に設定してから、環境変数を単独で展開すると、OSがコマンドとして実行しようとします。
SET /P COMMAND=Command:
%COMMAND%
バッチ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