Захватите содержимое текстового файла и установите часть текстового файла в различные переменные - PullRequest
0 голосов
/ 02 марта 2020

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

В качестве примера у меня есть Input.txt (содержимое - это то, что я есть в моем фактическом текстовом файле).

И я хотел бы уточнить, что находится в скобках для различных переменных. (ex. var_1, var_2)

У меня трудные времена, потому что у серверов есть "AS" в их именах, и я хочу быть осторожным, чтобы не удалить их из вывода.

Может ли кто-нибудь помочь с этим?

Input.txt

    Indexing SERVER_HOSTS as (SERVERAS01 SERVERAS02 SERVERAS03)
    Indexing SERVER_ROOT_PATHS_LIST as (I:\tmp I:\tmp I:\tmp)

Что бы я хотел установить для моих переменных:

var_1=SERVERAS01 SERVERAS02 SERVERAS03
var_2=I:\tmp I:\tmp I:\tmp

1 Ответ

0 голосов
/ 03 марта 2020

Основываясь на комментарии Сквошмана, вы можете сделать что-то вроде этого:

@echo off
If "%~x1" neq ".txt" (
    Goto :Help
)

SETLOCAL EnableDelayedExpansion
@for /F "tokens=2 delims=()" %%a in ('Type %1') do (
    Set /a Count+=1
    Set "VAR[!Count!]=%%a"
)

Cls & color 0B
For /L %%i in (1,1,%Count%) Do (
    Set VAR_%%i=!VAR[%%i]!
)

echo VAR_1=%VAR_1%
echo VAR_2=%VAR_2%

Pause & Exit
::---------------------------------------------------------------------------
:Help
Color 0C & Mode 90,3
echo(
echo       Usage : Drag and Drop a .txt file over this script:"%~nx0"  
Timeout /T 5 /nobreak>nul & Exit
::---------------------------------------------------------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...