批处理提取文件中的某个字符串后面的字符,写到这个文件夹的名字里

批处理提取文件中的某个字符串后面的字符,写到这个文件夹的名字里,批处理如下:@echooffecho####Current:%date%%time%setdate_tim... 批处理提取文件中的某个字符串后面的字符,写到这个文件夹的名字里,批处理如下:

@echo off

echo ####Current: %date% %time%
set date_time="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%"
set Folder="Logs_%ver_str%_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%
%time:~6,2%"
echo ####start to get log to (%CD%\%Folder%)...
mkdir %Folder%

adb shell logcat -v -d -t 1000 > %Folder%\logcat.txt

pause
@echo on

其中logcat.txt 里面有以下字符串,我想把123456789964512写到%Folder%,怎么实现?
........
[ro.serialno]: [123456789964512]
........

现在问题是文件夹已经用时间戳生成了,怎么个改法可以实现?
for /f "delims=" %%j in ('type "%Folder%\logcat.txt"^|find /i "[ro.serialno]: "')do set "s=%%j"

ren %Folder% %s%&%Folder%

我使用上次这句提示找不到指定文件
展开
 我来答
yyykkkyyyy
推荐于2016-05-28 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3309万
展开全部
我理解是要从生成的文件里获取新文件夹名并更名(共4步):
从文件获取特定串所在行赋给变量s
去前面特定串
去掉字符]
改文件夹名为s获取值
for /f "delims=" %%i in ('find "[ro.serialno]: ["^<"%Folder%\logcat.txt"')do set "s=%%i"
set "s=%s:*[ro.serialno]: [=%"
set "s=%s:]=%"
ren "%Folder%" "%s%"
更多追问追答
追问
系统提示找不到指定文件
语法命令不正确
追答
你原代码这一句 adb shell  logcat -v -d -t 1000 > %Folder%\logcat.txt 就是生成文件的,我写的4句要放在此句之下,且基于前面都是正常的
事实上我看到前面代码引用一未定义变量 %ver_str% ,如果此批处理是完整的就怀疑是否系统有此设定的环境变量的,不然可能影响文件生成----所以加的代码我都逐句详细解释其功能,我仅能确定这4句的作用
在你原代码pause前临时加一行测试代码dir/b "%Folder%(我写的4句代码暂不加) 测试一下,看看执行到按任意键继续时能否显示生成的文件或是否有出错提示
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式