Получение значения из однострочного сценария Perl - PullRequest
1 голос
/ 22 ноября 2010

Я пытаюсь проанализировать выходной файл для некоторых данных, и у меня возникают проблемы с возвратом значения в мою оболочку Windows.

Я просто пытаюсь вернуть значение с помощью простого регулярного выражения,и сохраните это в моей переменной оболочки.

В настоящее время у меня есть что-то вроде этого:

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

, где %VAL% - это место, где я хотел бы вернуть то, что было найдено в $1%PERL% указывает на локальную копию perl.exe.

Может кто-нибудь указать, пожалуйста, правильный способ сделать это?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

РЕДАКТИРОВАТЬ: это немного страшнее, чем 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

Из Трюки с глупыми пакетными файлами

0 голосов
/ 22 ноября 2010

Почему бы вам не создать переменную внутри скрипта?смотрите env_var на win32 perl wiki.

...