1

プラットフォーム:Windows Vista Service Pack 2(x86)

私はバッチスクリプトをいじっていて、それらがコマンドプロンプトとして機能できることに気付きました(バッチスクリプトの実行がコマンドプロンプトをスローしたことは知っています)つまり、バッチスクリプトはユーザーにコマンドの入力を求めてからコマンドを呼び出すことができます。

SET command=
SET /P command=%cd%^>

ECHO(
%command%
ECHO(

唯一の問題は、たとえばcd%windir%と入力すると、システムが指定されたパスを見つけられないことを通知するエラーメッセージが表示されることです。そこで、echo%windir%と入力し、echoで%windir%を出力しましたが、まったく展開されていませんでした。問題は、%command%変数内にネストされた環境変数があるためかどうか疑問に思っていますが、私が理解していることから、CMD.exeはネストされた環境変数をサポートしています。遅延拡張を使用してみましたが、変数が拡張されませんでした。

4

1 に答える 1

4

callまたはを追加して、cmd /cそのように変数を評価します。

@echo off
setlocal
SET /P command=%cd%^>

call %command%
ECHO;
于 2013-02-07T16:45:58.207 に答える