Необходимо напечатать только 13-16 символов (число / алфавит) в файле и сохранить его как переменную для последующего использования при вызове с использованием пакетного файла. - PullRequest
0 голосов
/ 18 января 2019

У меня есть файл с именем output.txt с выводом, как показано ниже.

cluster_id 2
disk_id 23
Master_cluster_change_id 567

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

1 Ответ

0 голосов
/ 18 января 2019

Для сохранения значений в переменных, названных как первый текст в каждой строке.

@Echo off
for /f "tokens=1*" %%A in (output.txt) Do Set "%%A=%%B"
set | find /i "_ID="

> SO_54258819.cmd
cluster_id=2
disk_id=23
Master_cluster_change_id=567

вариант EDIT с префиксом _ для имени переменной

:: Q:\Test\2019\01\18\SO_54258819.cmd
@Echo off
for /f "tokens=1*" %%A in (output.txt) Do Set "_%%A=%%B"
set _

> Q:\Test\2019\01\18\SO_54258819.cmd
_cluster_id=2
_cluster_name=xyz
_disk_id=23
_disk_name=123
_disk_peer=yes
_disk_type=type1
_Master_cluster_change_id=567
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...