获取文本文件的内容,并将文本文件的一部分设置为不同的变量



我正在创建一个批处理文件,很难将文本文件的内容提取到不同的变量中。

例如,我有Input.txt(内容与实际文本文件中的内容完全相同(。

我想把括号里的内容精确到不同的变量。(例如var_1、var_2(

我遇到了困难,因为服务器的名称中有"AS",我希望小心不要将它们从输出中删除。

有人会提供帮助吗?

输入.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

根据Squashman的评论,您可以这样做:

@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
::---------------------------------------------------------------------------

最新更新