我想在文本文件中找到包含120多个值行的值,然后将找到该值的行设置为变量,以便我可以返回并用另一个值替换文本文件中的值
使用此行
for /F "delims=" %%a in ('findstr /c:/-59/12/ ScreenData.txt') do set
var=%%a
我可以在文本(ScreenData.txt)中找到值(坐标)/-59/12 /,然后将其分配给变量(变量)。 然后,我可以回显%var%并获得输出/ -59 / 12 /,但是没有办法再用(例如字母H)替换/ -59 / 12/。
我尝试过...
for %%g in (findstr /n "/-58/12/" ScreenData.txt) do set var=%%g
文本文档的第二行带有/ -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 /的值。 它在哪条线上? 它在第三行。 将第三行替换为“ H”。
答案 0 :(得分:0)
pos_click[5]
您需要根据自己的情况更改@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
的文件,其中包含一些虚拟数据用于测试。
产生定义为%outfile%的文件
空的数据行将被删除。
这只是将任何正好是“ / -59 / 12 /”的行更改为“ H”。您需要提供其他可能需要的转换的示例。
为了通用性,我特意使用了详细的布局。