![コマンド置換を実行する Windows コマンドプロンプト](https://rvso.com/image/1336275/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E7%BD%AE%E6%8F%9B%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%20Windows%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88.png)
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"
要件によっては、もう少し複雑になる場合があります。