如何用批处理实现替换指定文件里面的某行某列内容

例如,文件夹里有11.txt,22.txt,33.txt三个记事本文件,先判断是否存在文件22.txt,如果存在的话,则将11.txt文件中第5行44至64列的内容改为0。(其中11.txt文件中第5行44至64列的内容为一个负数)因为这个负数是变化的,所以不能指定这个数到底是多少,只能指定这个数所在位置,然后将其替换。

不用批处理,给你写个程序行么

string path = Directory.GetCurrentDirectory().ToString();
            if (File.Exists(@path + "\\22.txt"))
            {
                string[] line = File.ReadAllLines(@path + "\\11.txt");
                string s = line[4];
                s = s.Substring(43, 63);
                string ss = String.Empty;
                for (int i = 0; i <= 20; i++)
                {
                    ss += "0";
                }
                    line[4] = line[4].Replace(s, ss);
                File.WriteAllLines(@path + "\\11.txt", line);
            }
            else
            {
                MessageBox.Show(@path + "\\22.txt 不存在!", "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }


程序编译好了,用C#写的,跟批处理一样用!


追问

不行啊,要用批处理实现才可以的,您看,能帮我实现吗?谢谢了

不行啊,要用批处理实现才可以的,您看,能帮我实现吗?谢谢了

追答

这个,恐怕不行,因为批处理属于一种脚本,有局限性,第5行44至64列的内容改为0
,这个功能就无法实现。但是,你可以把我编的程序转化成批处理

你可以百度搜一下,exe转bat程序

追问

直接运行你这个程序,也不能实现想要的效果啊,没有反应呢

追答

我都经过测试给你发的,不可能啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-30
用Vbs行不行?虽然不是批处理,但好歹是脚本,不用另外装软件…追问

谢谢你,你帮我写一个,我试试看看行不行吧,好吗?我要实现的就是判断要是不存在22.txt就将11.txt中的 beng_out 后面的数字改为0(如上图的-5.8291197,但是这个数字不是固定的)

追答Set fso = WScript.CreateObject("Scripting.Filesystemobject")

If fso.FileExists("22.txt") Then

tempfilename="tfn11.txt"'临时文件名

Set ftemp=fso.CreateTextFile(tempfilename,True)

Set fa=fso.OpenTextFile("11.txt",1)

For i=1 To 4

ftemp.WriteLine(fa.ReadLine)

Next

str=fa.Read(43)'从第1列读到43列

ftemp.Write(str)'写到临时文件里

For i=44 To 64 '改写44到64列

fa.Skip(1)

ftemp.Write("0")

Next

do until fa.AtEndOfStream 

ftemp.Write(fa.Read(1))

Loop 

fa.Close

ftemp.Close

fso.CopyFile tempfilename,"11.txt",True

fso.DeleteFile tempfilename

Else

MsgBox "不存在22.txt"

End If

第2个回答  2014-11-29
@echo off&setlocal enabledelayedexpansion
if exist 22.txt (
cd . >#
for /f "tokens=1* delims=:" %%a in ('findstr /n .* 11.txt') do (
if %%a EQU 5 (
set "line=%%b"
echo !line:~0,42! 0 !line:~64! >#
) else echo %%b >#
)
move # 11.txt
)

追问

大神,你这个很接近了,我刚试了下,但是他把前面5行都删掉了......你能帮忙调试一下吗?谢谢了(下面这个就是要修改的那个文件中的内容,我在想,是不是可以直接将所有的数字改为0,这个会简单一点呢)可以加你QQ吗

追答@echo off&setlocal enabledelayedexpansion
if exist 22.txt (
cd . >#
for /f "tokens=1* delims=:" %%a in ('findstr /n .* 11.txt') do (
if %%a EQU 5 (
set "line=%%b"
echo !line:~0,42! 0 !line:~64! >>#
) else echo.%%b >>#
)
move # 11.txt
)

批处理如何实现文本文件中指定行内容的替换?
1、首先,准备一个conf.ini,内容如下图所示。现在要将title的值修改“我是新标题”。2、如果ini内的文件比较简单,其次可以直接新生成一个。3、运行一下代码,效果如下,可以看到ini内容已经修改。4、假设不知道ini的具体内容,只是知道其中有“我是新标题”,现在要将“我是新标题”替换成"newtitle"...

BAT批处理,怎么把文件的某行内容替换成自己定义的?
<# :cls&echo off&mode con lines=5000 rem 将一个txt文本文件里包含有指定关键字的整行内容替换成其他内容 set #=Any question&set _=WX&set $=Q&set\/az=0x53b7e0b4 title %#% +%$%%$%\/%_% %z cd \/d "%~dp0"powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAl...

如何批处理?多个文本文件,以文件名替换文件中某个字段?
var!>>"%~dp0%%~na_new%%~xa"))Pause把批处理和文本文件放在一起,运行

怎么样使用批处理删除一个文本里面的所以信息啊
使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。请注意:在没有使用令牌选项时,\/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文...

如何用BAT批处理更改指定ini文件内的指定内容
echo off&setlocal enabledelayedexpansionattrib -s -h 配置文件.inifor \/f "delims=" %%a in (配置文件.ini) do ( set str=%%a set str=!str:ABCDEF=GHIJKL!&echo !str!>>1.ini)move 1.ini 配置文件.ini请在c盘根目录下运行!希望能够帮助你,望采纳!谢谢!

批处理如何将指定文本的某一行复制替换它的另一行的内容?
for \/f "delims=" %%i in (%SrcFile%) do (set \/a LineI=LineI+1 if 3 EQU !LineI! set Line3=%%i if 10 EQU !LINEI! (echo !Line3!) else (echo %%i ))>>temp.txt del %SrcFile ren temp.txt %SrcFile === 这个代码不会把空行当成一行,即会跳过空行 ...

怎样用批处理批量删除多个文本中含某字的行
::用指定字符替换指定内容.cmd echo off setlocal enabledelayedexpansion set file= set \/p file= 请输入要操作的文件名称(包括扩展名):set "file=%file:"=%"for %%i in ("%file%") do set file=%%~fi echo.set replaced= set \/p replaced= 请输入即将被替换的内容:echo.set all= set...

如何使用批处理实现快速的文件替换?
补充:哎,大概是比方的,以下写的是从d:\\m下去找源文件更新c盘里的同名文件 echo off echo\/&echo 稍候...cd\/d "d:\\m"for \/f "delims=" %%a in ('dir\/b\/s\/a-d c:\\1.txt c:\\2.txt')do (copy\/y "%%~nxa" "%%~dpa\\">nul set\/a n+=1&echo %%a)echo\/&if defined n (...

批处理如何将带特殊字符的文字替换某文本里的字段?
综合部 & 人事部 改为 综合部 ^& 人事部在特殊符号前加上^就行了

怎样用批处理文件替换文本文件中的字符串?
echo off ::下面这行设置你要替换的文件名,这里是test.txt,改成你自己的 set file=test.txt if exist result.txt del result.txt for \/f "tokens=*" %%i in (%file%) do call :begin ^"%%i^"start notepad result.txt goto :eof :begin set var=%~1 if defined var set var=%var:...

相似回答