BATCH 脚本从文件中查找字符串并将类似变量附加到文件名中

BATCH 脚本从文件中查找字符串并将类似变量附加到文件名中

大家好,我需要批处理脚本方面的一点帮助...来自包含以下内容的文件 something.txt

data
data
LastLogedUser=John.Doe
data
data

我想找到字符串 LastLogedUser= 并在其后附加文本(在本例中为“John.Doe”,就像其他文件副本中的变量一样……像这样,但我的代码有些错误:

for /F "delims=" %%a in ('findstr /I "LastLogedUser=" something.txt') do set "uniuser=%%a"  
echo User is: %uniuser%   
copy fpr_log.txt c:\fpr_log%uniuser%.txt

答案1

我的代码有问题

findstr /I "LastLogedUser=" something.txt返回文件中的整行:

> findstr /I "LastLogedUser=" something.txt
LastLogedUser=John.Doe

因此你的for循环需要用作=分隔符并获取第二令牌以便提取John.Doe

我还添加了一些"s,以防用户名中有空格......

更正的批处理文件:

@echo off
setlocal
for /F "tokens=2 delims==" %%a in ('findstr /I "LastLogedUser=" something.txt') do set "uniuser=%%a"  
echo User is: %uniuser%   
copy fpr_log.txt "c:\fpr_log%uniuser%.txt"
endlocal

进一步阅读

答案2

您的意思是获取变量中的当前文本并在之后添加文本:

variable: exvariable
append: john.doe
result: exvariablejohn.doe

? 尝试:

for /f "tokens=*" %%i in ('echo %variable%') do set variable=%%iappendtext

我说得对吗?

相关内容