编辑.txt文件与批处理文件 [英] Editing a .txt file with a batch file
问题描述
好吧,我环顾四周,并试图去适应一些code我确实发现,使其工作,但我已经尝试了所有尝试都失败的。
基本上我有一个文本文件,我们会打电话给它的test.txt
TEXT.TXT包含以下三行:
VAR1 = TEST1
VAR2 = TEST2
VAR3 = TEST3
基本上我试图让一个批处理文件来问我什么,我想VAR3的值更改为,然后更改VAR3的值,以反映我在键入
这可能吗?如果是的话我将如何做到这一点?
@ECHO OFF
SETLOCAL
FOR %%一个在(var2change var2change2)DO SET一%% =
SET / p var2change =更改哪些变量?
SET / p var2change2 =更改%var2change%至?
ECHO前值
TYPE q24373191.txt
ECHO =============
::做出临时文件
:maketemp
SET临时文件=%TEMP%\\%随机%
如果不存在%临时文件%*(GOTO maketemp)ELSE(ECHO方式>%临时文件%A)(
FOR / F令牌= 1 * delims ==%%一个IN('型q24373191.txt')DO(
IF / I%%一个==%var2change%(ECHO %% A =%var2change2%
)ELSE(ECHO %% A = %% b
)
)
)>中%临时文件%了COPY / Y / B%临时文件%一个q24373191.txt> NUL
DEL%临时文件%了ECHO值后
TYPE q24373191.txtGOTO:EOF
我用命名包含您的数据,我的测试文件 q24373191.txt
。
Alright, I've looked around and tried to adapt some of the code I did find to make it work but all attempts I've tried have failed.
Basically I have a text file, we'll call it TEST.txt
TEXT.txt contains these three lines:
Var1=test1
Var2=test2
Var3=test3
Basically I am trying to get a batch file to ask me what I want to change the value of var3 to and then change the value of var3 to reflect what I typed in.
Is this possible? If so how would I accomplish this?
@ECHO OFF
SETLOCAL
FOR %%a iN (var2change var2change2) DO SET "%%a="
SET /p var2change="Change which variable ? "
SET /p var2change2="Change %var2change% to ? "
ECHO Values before
TYPE q24373191.txt
ECHO =============
:: make a tempfile
:maketemp
SET "tempfile=%temp%\%random%"
IF EXIST "%tempfile%*" (GOTO maketemp) ELSE (ECHO.>"%tempfile%a")
(
FOR /f "tokens=1*delims==" %%a IN ('type q24373191.txt') DO (
IF /i "%%a"=="%var2change%" (ECHO %%a=%var2change2%
) ELSE (ECHO %%a=%%b
)
)
)>"%tempfile%a"
COPY /y /b "%tempfile%a" q24373191.txt >nul
DEL "%tempfile%a"
ECHO Values after
TYPE q24373191.txt
GOTO :EOF
I used a file named q24373191.txt
containing your data for my testing.
这篇关于编辑.txt文件与批处理文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!