コマンド置換を実行する Windows コマンドプロンプト

コマンド置換を実行する Windows コマンドプロンプト

Windows コマンドプロンプトでコマンド置換を実行するにはどうすればよいですか?

コマンド置換は UNIX シェルの非常に強力な概念です。これは、1 つのコマンドの出力を 2 番目のコマンドに挿入するために使用されます。たとえば、代入の場合:

$ today=$(date) # starts the "date" command, captures its output
$ echo "$today"
Mon Jul 26 13:16:02 MEST 2004

これは、割り当て以外の他のコマンドでも使用できます。

$ echo "Today is $(date +%A), it's $(date +%H:%M)"
Today is Monday, it's 13:21

これは date コマンドを 2 回呼び出します。1 回目は曜日を印刷し、2 回目は現在の時刻を印刷します。

コマンド プロンプトでそれを実行する方法を知る必要があります (コマンドの一部として を使用してそのようなことを実行する方法があることは既に知っていますforが、この方法ははるかに難読化され、複雑です)。

答え1

DOS ではそれができません。

DOS が Windows コマンド プロセッサを意味する場合はcmd.exe、次のコマンドでコマンドの出力を取得できますfor /f

for /f %%x in ('date') do set "today=%%x"

要件によっては、もう少し複雑になる場合があります。

答え2

の制限された機能ではなく、本物のUnixスタイルのコマンド置換が必要な場合はcmd.exe、Windows用の本物のUnixシェルを入手することを検討してください。私がお勧めできる2つは次のとおりです。シグウィン(無料ですが、Windowsファイルシステムをあまり理解していません)と私自身のハミルトンCシェル(商用ですが、Windows 用に書かれています)。

関連情報