【发布时间】:2014-07-24 14:25:20
【问题描述】:
我正在尝试读取文件并将数据行输出到注册表项中。数据收集工作,但我不明白在最后一个循环中增加字符串值所需的语法。
@echo OFF
SETLOCAL DisableDelayedExpansion
FOR /F "usebackq skip=1 delims=" %%a in (`"findstr /n ^^ C:\GetSID.txt"`) do (
set "var=%%a"
SETLOCAL EnableDelayedExpansion
set "var=!var:*:=!" This removes the prefix
echo(!var:~76,63!>>C:\SIDoutput.txt
goto :EndLoop
)
:EndLoop
set /p SID= <C:\users\paintic\SIDoutput.txt
set KEY_NAME="HKEY_USERS\!SID!\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts"
set Counter=1
for /f %%x in (C:\users\paintic\Networkprinters.txt) do (
set "Line_!Counter!=%%x"
set /a Counter+=1
if !Counter!==3 (Echo %line_counter%)
)
set /a counter2=!counter!-3
set counter=1
下面的部分是我无法工作的部分。我正在尝试从前一个循环中写入 LINE_1、LINE_2 和 LINE_3 值,以通过下面的循环递增。所以 VALUENAME 应该等于 LINE_1,TYPE 应该 = LINE_2 的值,DATA 应该在第一次运行时 = LINE_3 并继续上升 1 直到循环结束(文件读取结束)
`for /L %%i in (1,1,%counter2%) do (
set ValueName=%Line_!counter!%
set /a counter+=1
set Type=%Line_!counter!%
set /a Counter+=1
set Data=%Line_!counter!%
set /a Counter+=1
echo !ValueName!
echo !Type!
echo !Data!
REG ADD %KEY_NAME% /v !ValueName! /t !Type! /d !Data! /f
)
ENDLOCAL
Pause`
【问题讨论】:
-
请显示示例数据,可能会出现在
LINE_数组中,更重要的是,您希望从该数据中获得的值是valuename、type和data.你说的“继续上升 1”到底是什么意思?
标签: loops batch-file syntax increment