我正在创建一个批处理文件,很难将文本文件的内容提取到不同的变量中。
例如,我有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
::---------------------------------------------------------------------------