bat文件如何逐行读取文件内容并修改

bat文件如何逐行读取文件内容并修改,第1张

1、进入win10桌面好旁以后,右击桌面空白处,然后选择【新建】,然后找到并且点击【文本文档】。

2、双击文本文档,进入文本文档界面输入hostname。

3、还需要输入一个命令暂停【pause】-暂停。戚漏

4、保存文本,然后右击重命名,改【文本后缀为bat】。

5、【双击bat文件】,文件就会自动运行命令提示符逐行读取文件内容,此时查看一下结果。

6、运行成功后说明这个bat文件是可以的,右击刚刚的bat文件然后点击【编辑】。

7、会重新【进入这个bat文件里面】,然后高袜烂就可以进行修改了。

不清楚你的实际文件/情况,仅以问题中的样例/说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行<# :

cls&echo off&cd /d "团咐%~dp0"

rem 检查当前目录里的txt文本文件最后一行是否存在/包含有指定内容,没有则在文件末尾添加

powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText(\"%~f0\",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"

pause

exit

#>

$findword="abcd"

$enc=[Text.Encoding]::GetEncoding('GB2312')

$files=@(dir -literal "."|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])})

for($i=0$i -lt $files.length$i++){

    $check=$false

    $text=[IO.File]::ReadAllLines($files[$i].FullName, $enc)

   塌差纯 for($j=$text.count-1$j -ge 0$j--){

        $line=$text[$j] -replace '^\s*|\s*$',''

        if($line -ne ''){

            if($line.Contains($findword)){$check=$true}

     庆悉       break

        }

    }

    if($check){

        write-host $files[$i].Name -ForegroundColor green

    }else{

        write-host $files[$i].Name -ForegroundColor yellow

        $s=($text -join "`r`n")+"`r`n"+$findword

        [IO.File]::WriteAllLines($files[$i].FullName, $s, $enc)

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8200286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存