gpt4 book ai didi

batch-file - 使用批处理文件在批处理文件中的特定行后插入新行

转载 作者:行者123 更新时间:2023-12-04 05:57:55 25 4
gpt4 key购买 nike

我想在批处理文件中的特定行之后插入一行。
输入:

set MTBBankpath=C:\InstallerOutput\QuickBooks-Sync\MTB
echo To copy QuickBooks-Sync COM components into resultant folder
copy /Y %ConnectorExecutionPath%\%outqbsyncpath%

输出:
set MTBBankpath=C:\InstallerOutput\QuickBooks-Sync\MTB
set IndbBankpath=C:\InstallerOutput\QuickBooks-Sync\indb
echo To copy QuickBooks-Sync COM components into resultant folder
copy /Y %ConnectorExecutionPath%\%outqbsyncpath%

新线路 set IndbBankpath=C:\InstallerOutput\QuickBooks-Sync\indb在特定行之后插入。

最佳答案

SETLOCAL ENABLEDELAYEDEXPANSION

set inputFile=%userprofile%\desktop\testSO.bat
set outputFile=%userprofile%\desktop\testSOout.bat
set _strInsert=set IndbBankpath=C:\InstallerOutput\QuickBooks-Sync\indb
set _strFind=set MTBBankpath=C:\InstallerOutput\QuickBooks-Sync\MTB

FOR /F "usebackq delims=" %%A IN ("%inputFile%") DO (
Echo %%A | Find "%_strFind%" && ECHO %%A>>"%outputFile%" && ECHO %_strInsert%>>"%outputFile%"
IF [!errorlevel!] == [1] ECHO %%A>>"%outputFile%"
)

基本上,对于文件中的每一行,执行 FIND在它上面查找有问题的字符串,如果找到它,将字符串回显到输出文件中,然后回显您想要插入到输出文件中的内容。如果它没有在该字符串中找到您要查找的内容,它只会将该字符串回显到输出文件中。

编辑:如果文件相当大......这可能会快一点
SETLOCAL ENABLEDELAYEDEXPANSION

set inputFile=%userprofile%\desktop\testSO.bat
set outputFile=%userprofile%\desktop\testSOout.bat
set _strInsert=set IndbBankpath=C:\InstallerOutput\QuickBooks-Sync\indb
set _strFind=set MTBBankpath=C:\InstallerOutput\QuickBooks-Sync\MTB
set i=0

FOR /F "usebackq tokens=1 delims=[]" %%A IN (`FIND /N "%_strFind%" "%inputFile%"`) DO (set _strNum=%%A)
FOR /F "usebackq delims=" %%A IN ("%inputFile%") DO (
set /a i = !i! + 1
ECHO %%A>>"%outputFile%"
IF [!i!] == [%_strNum%] (ECHO %_strInsert%>>"%outputFile%")
)

如果您想“假装”它正在写入同一个文件,请将其添加到脚本的末尾。
MOVE /Y "%outputFile%" "%inputFile%" && DEL /F /Q "%outputFile%"
编辑:我可以拥有更多的莱恩斯!?

SETLOCAL 启用延迟扩展
set inputFile=%userprofile%\desktop\testSO.bat
set outputFile=%userprofile%\desktop\testSOout.bat
set _strInsert=set IndbBankpath=C:\InstallerOutput\QuickBooks-Sync\indb
set _strFind=set MTBBankpath=C:\InstallerOutput\QuickBooks-Sync\MTB
set i=0

FOR /F "usebackq tokens=1 delims=[]" %%A IN (`FIND /N "%_strFind%" "%inputFile%"`) DO (set _strNum=%%A)
FOR /F "usebackq delims=" %%A IN ("%inputFile%") DO (
set /a i = !i! + 1
ECHO %%A>>"%outputFile%"
IF [!i!] == [%_strNum%] (
ECHO %_strInsert%>>"%outputFile%"
ECHO I WANT TO ADD THIS LINE ALSO>>"%outputFile%"
ECHO OOOO THIS LiNE TOO>>"%outputFile%"
ECHO ZOMGBBQSAUCE ADD THIS LINE ALSO>>"%outputFile%"
)
)

关于batch-file - 使用批处理文件在批处理文件中的特定行后插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com