在文本文件中搜索数字并在for循环中修改它

时间:2013-11-14 13:01:10

标签: batch-file command-prompt

我有一个名为txtfile.txt的文本文件,它里面有例如以下内容:

x=0
y=0
z=10

我想从-x到+ x运行for循环,步长为y以搜索z并向其添加数字(x)。 (我只是想改变这个数字 我怎么能这样做呢?它跟随“z =”而已。它在一个文本文件中,我想在没有任何其他内容的情况下在txt文件中更改

感谢

3 个答案:

答案 0 :(得分:0)

将此文件包含在您的脚本中,然后在脚本中包含变量$ x,$ y和$ z

答案 1 :(得分:0)

您可以在批处理程序中包含此行:

for /F "delims=" %%a in (txtfile.txt) do set %%a

在此行之后,txtfile.txt中定义的变量将赋值。

关于请求的第二部分,我不明白“搜索z并向其添加数字(x)”的含义。你想在哪里“搜索z”?是谁呀”?请修改您的问题以包含示例。

答案 2 :(得分:0)

试试这个:

@echo off
setlocal enabledelayedexpansion

set myfile=txtfile.txt
for /f "tokens=1,2 delims== " %%a in (%myfile%) do ( 
  if %%a EQU x set start=%%b
  if %%a EQU y set step=%%b
  if %%a EQU z set find=%%b
)

for /l %%f in (-!start!, !step!, !start!)  do (
  if %%f EQU !start! (
   set /a new=!find!+!start!
   call :FindRepl !find! !new! %myfile%
  ) 
)
exit /b


:FindRepl
::Adapted from DosTips batch file::
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B"
    if defined line (
        call set "line=echo.%%line:%~1=%~2%%"
        for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X>>%temp%\_.tmp
    ) ELSE echo.
)
Move /y %temp%\_.tmp "%3">nul
exit /b