batスクリプトファイル内の別のコマンドでコマンドを実行するWindows同等の構文はありますか?BashインラインコマンドのWindowsバットの代替方法
Linuxでは、単に$(...)または ``を使用できます。
batスクリプトファイル内の別のコマンドでコマンドを実行するWindows同等の構文はありますか?BashインラインコマンドのWindowsバットの代替方法
Linuxでは、単に$(...)または ``を使用できます。
はい、少なくとも簡単なもののために:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%w in ('echo xyzzy') do set var=%%w
echo Output is %var%
endlocal
そのスクリプトの出力は次のとおりです。echo
コマンドから来るxyzzy
と
Output is xyzzy
。
コマンドウィンドウからfor /?
を実行すると、より包括的なオプションリストが表示されます。
これは、Windowsのコマンドラインエンジンで内部的に使用されていないfor-inコンストラクトによって処理されると思います。私の場合は動作しないようです:http://stackoverflow.com/questions/11828801/imagmagick-how-to-add-a-gradient-splice-to-an-image-using-one-convert-command/11864792#11864792 – Mohsen
@Moshen、 'for'は私があなたがこれを行うことができると思う唯一の方法です。 'bash'でも' $() 'でコードを実行していないので、単純に別のプロセスの標準出力を置き換えています。それは私の答えのように環境変数に格納し、その変数を使うことと変わりません。 – paxdiablo
@Mohsen - FORは内部コマンドなので、コマンドラインエンジンが最も確実に処理しています。 – dbenham
Windowsの.batファイルは歴史的な後退です。代わりにPerlをインストールしてみませんか? – cdarke
バッチファイルにはまだ場所があります。たとえば、インストールスクリプトの一部として実行する必要がある場合などです。 Perlがユーザのシステムにインストールされるとは想定できません。 –