现在我的脚本使用此文件设置我需要执行的txt文件的路径。
有没有办法改进脚本,以便它读取服务器文件夹中的所有文件,并在第二个FOR上使用它们而不是%s1%,%s2%等?
脚本
for /F "tokens=*" %%c in (servers\list.txt) do (
%%c
)
for %%a in (%s1% %s2% %s3%) do (
call :start %%a
)
文件列表:
set s1=servers\xxx.txt
set s2=servers\yyy.txt
set s3=servers\zzz.txt
Servers文件夹包含list.txt和文件xxx.txt,yyy.txt,zzz.txt等。
xxx.txt,yyy.txt文件具有下一种格式:
set server=192.168.0.0
set user=user
...
答案 0 :(得分:1)
你需要嵌套你的for
循环,而不是一个接一个地执行:
@echo off
setlocal enabledelayedexpansion
for %%l in (list.txt) do (
for /f "tokens=2 delims==" %%a in (%%l) do (
for /f "delims=" %%c in (%%a) do %%c
ECHO !server!,!dbname!,!dbuser!,!dbpass!
)
)
答案 1 :(得分:1)
@ECHO OFF
SETLOCAL
for /F "tokens=*" %%c in (q45322067.txt) do (
%%c
)
for /F "tokens=2delims== " %%a in (q45322067.txt) do (
FOR /f "tokens=1*delims==" %%b IN ('set %%a') DO IF /i "%%b"=="%%a" ECHO call :start %%c
)
ECHO -------------------------------
for /F "tokens=3delims== " %%a in (q45322067.txt) do (
ECHO call :start %%a
)
GOTO :EOF
我使用了一个名为q45322067.txt
的文件,其中包含我的测试数据。
以下是一些方法,具体取决于您是否确实需要加载s?
,或者您有理由将s?
用作中间变量。