bat读取和处理文件内容

该文章介绍了如何使用Windows批处理脚本中的for/f命令配合Delims和Tokens参数来处理文件内容。首先,展示了如何替换文件的指定内容,然后演示了读取文件内容,包括空行,并进行特定行的条件判断与修改。最后,将修改后的内容写入新的文件并覆盖原文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for /f命令之—Delims和Tokens用法&总结_dynamicbeam的博客-优快云博客_delims

一.bat替换文件的指定内容

@echo off
setlocal enabledelayedexpansion
set fn=my.ini
for /f "tokens=*" %%i in (%fn%) do (
    set s=%%i
    set s=!s:1000=10000!
    echo !s!
)>temp1126.txt
move /y temp1126.txt "%fn%"

bat脚本读取文件内容

二.读取文件内容包括空行

@echo off
setlocal enabledelayedexpansion
set fn=my.ini
rem for /f "tokens=*" %%i in (%fn%) do (
for /f " tokens=1* delims=:" %%i in ('findstr /n .* "%fn%"') do (
	set s=%%j
	if "!s!" == "r.RayTracing=False" set s=r.RayTracing=True
	if "!s!" == "r.SkinCache.CompileShaders=False" set s=r.SkinCache.CompileShaders=Ture
	if "!s!" == "r.Shaders.CompressionFormat=3" set s=r.Shaders.CompressionFormat=2
	echo.!s!
)>>temp1126.txt
move /y temp1126.txt "%fn%"
pause

三.文件字符解析

submitResult.txt解析出CHANGE:1991663

Submitting change 1991663.
Locking 1 files ...
edit //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat#11
file: //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat
start

file: //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat

file: //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat

Change 1991663 submitted.
INFO:root:----start-----
/p4/1/tmp/tmp.167464.140507581182464.339.py:112: FutureWarning: Possible nested set at position 1
  reg = re.compile(r'[[](.*?)[]]', re.S)
INFO:root:1991663
INFO:root:zhikangdeng
INFO:root:{'workspace_id': 20402532, 'message': '--story=866048421 mytest', 'files': ['edit //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat'], 'commit_time': '2024-07-30 21:05:05'}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): apiv2.tapd.oa.com:9100
/p4/.local/lib/python3.9/site-packages/urllib3/connectionpool.py:1095: InsecureRequestWarning: Unverified HTTPS request is being made to host 'apiv2.tapd.oa.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
  warnings.warn(
DEBUG:urllib3.connectionpool:https://apiv2.tapd.oa.com:9100 "POST /code_commit_infos HTTP/1.1" 502 157
OOps: Something Else Expecting value: line 1 column 1 (char 0)
Running devops change.sh\n\n
devopsCallbackUrl:https://devnet.devops.oa.com:9100/process/api/external/scm/p4/commit,p4Port:ssl:pracing-p4.ces.qq.com:1666,event_type:CHANGE_COMMIT,CHANGE:1991663,user:zhikangdeng
{"status":0,"data":true}Sending webhook finished\n\n
file: //JF_UEProj/BR_PRacing_Dev/Common/Excel/2-update.bat

@echo off


setlocal ENABLEDELAYEDEXPANSION

rem 设置submitResult.txt文件路径,注意路径不能加双引号,否则会被识别为字符串而不是路径
set RESULT_FILE=submitResult.txt
set TEST_FILE="Set.txt"

rem type %RESULT_FILE%

for /f "delims=" %%A in (submitResult.txt) do (
	echo %%A | findstr /C:"CHANGE:" > nul
    if not errorlevel 1 (
        for /f "tokens=4 delims=," %%B in ("%%A") do (
            set CHANGE=%%B
            echo !CHANGE!
        )
    )
)

rem 输出解析结果
echo 提交版本号为:!CHANGE!

endlocal

pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值