/ /単一行のPerlスクリプトから値を取得する-perl、shell、windows-shell

一行のPerlスクリプトから値を取得する - perl、shell、windows-shell

一部のデータの出力ファイルを解析しようとしていますが、Windowsシェルに値を返す際に問題が発生しています。

私がやろうとしているのは、単純な正規表現を使用して値を返し、それをシェル変数に格納することです。

私は現在このようなものを持っています:

%VAL% = %PERL% -e "$tmp="Value: 1000"; if ($tmp =~ /Value:s(d+)/) { print $1; }"

どこで %VAL% で見つかったものを返したい $1、および %PERL% perl.exeのローカルコピーを指します。

誰かがこれを行う適切な方法を指摘していただけますか?

回答:

回答№1は2

編集:それはUnixより少しいです:

for /f "tokens=*" %i in ("perl -e "$tmp="Value: 1000"; if ($tmp =~ /Value:s(d+)/) { print $1; }"") do set VAL = %i

または使用する set /p 中間ファイルの場合:

%PERL% -e "$tmp="Value: 1000"; if ($tmp =~ /Value:s(d+)/) { print $1; }" > file.txt
set /p VAL = < file.txt
del file.txt

から 愚かなバッチファイルのトリック


回答№2の場合は0

スクリプト内で変数を作成しないのはなぜですか? env_var win32 perl wikiで。