我想在文本文件中找到一个包含120行值的值,然后将找到值的行设置为变量,这样我就可以返回并用另一个值替换文本文件中的值。
使用这一行
for /F "delims=" %%a in ('findstr /c:/-59/12/ ScreenData.txt') do set
var=%%a
我可以在文本(ScreenData.txt)中找到值(坐标)/ -59 / 12 /然后将其分配给变量(var)。然后我可以回显%var%并获得输出/ -59 / 12 /,但是没有办法用/ -59 / 12 /替换(例如字母H)。
我试过了...
for %%g in (findstr /n "/-58/12/" ScreenData.txt) do set var=%%g
文本doc有/ -58/12 /作为第二行,但输出是ScreenData.txt而不是2。
这是导致更换的代码......
REM --- ROW a ---
SET /A rowa1x=%xaxis%-59
SET /A rowa1y=%yaxis%+12
SET rowa1=/%rowa1x%/%rowa1y%/
SET /A rowa2x=%xaxis%-58
SET /A rowa2y=%yaxis%+12
SET rowa2=/%rowa2x%/%rowa2y%/
SET /A rowa60x=%xaxis%
SET /A rowa60y=%yaxis%+12
SET rowa60=/%rowa60x%/%rowa60y%/
REM --- Export Values ---
(
echo %rowa1%
echo %rowa2%
echo %rowa60%
) >ScreenData.txt ---
pause
REM --- View Generator
for %%g in (findstr /n "/-58/12/" ScreenData.txt) do set var=%%g
echo %var%
pause
我确定我只是以错误的方式解决这个问题。
所以逻辑是......
在文本文件中找到等于/ -58 / 12 /的值。它是什么线?它在3号线上。用“H”替换第3行。
@ECHO Off
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q55875551.txt"
SET "outfile=%destdir%\outfile.txt"
(
FOR /f "delims=" %%a IN ('type "%filename1%"') DO (
IF "%%a"=="/-59/12/" (
ECHO H
) ELSE (
ECHO %%a
)
)
)>"%outfile%"
GOTO :EOF
您需要更改sourcedir
和destdir
的设置以适合您的具体情况。
我使用了一个名为q55875551.txt
的文件,其中包含一些虚拟数据供我测试。
生成定义为%outfile%的文件
空数据行将被删除。
这只是将“/ -59 / 12 /”到“H”的任何一行简单地改变。您需要提供您可能需要的其他转换的示例。
我使用的布局是故意冗长的多功能性。