『壹』 如何用bat查看文件里是否有指定内容并移动。
@echooff
if"%~1"==""(
echo此工具需要拖入文件夹到批处理图标上运行
ping127.0.0.1-n"4">nul
exit
)
dir/ad"%~1">nul2>nul||(
echo此工具仅支持文件夹的拖入,不支持文件的拖入
ping127.0.0.1-n"4">nul
exit
)
echo%1
cd/d"%~1"
setFailDir=失败
setStr=Rep
for/r%%ain("*%Str%*.xml")do(
ifnot"%%~dpa"=="%~1\%FailDir%"(
findstr/c:"鍝嶅簲鎴愬姛""%%~a">nul&&(
del/f/q"%%~a"
)||(
ifnotexist"%FailDir%"md"%FailDir%"
move"%%a""%FailDir%"
)
)
)
pause
除了增加判断xml文件中是否包含“响应成功”字符串的功能外,额外给你增加了拖入非文件夹后的提示代码,以及不重复处理“失败”目录中文件的代码。友情提醒,代码中有几个像乱码一样的中文字,那个不要改变哦!那个就是UTF-8“响应成功”的ANSI编码内容因为批处理读取utf8编码的文件中文字就会变成乱码一样。
『贰』 请问大佬怎么用bat提取指定内容
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
@echooff&cd/d"%~dp0"
rem从一个txt文本文件里提取出存在/包含有指定关键字的行,并删除行首特定内容
set#=Anyquestion&set@=WX&set$=Q&set/az=0x53b7e0b4
title%#%+%$%%$%/%@%%z%
set/pkeyword=搜索:
set"oldfile=a.txt"
set"newfile=b.txt"
ifnotexist"%oldfile%"(echo;"%oldfile%"notfound&pause&exit)
>"%newfile%"(for/f"tokens=1*"%%ain('type"%oldfile%"^|find/i"%keyword%"')doecho;%%b)
echo;%#%+%$%%$%/%@%%z%
pause
exit
『叁』 如何用bat脚本读取一个指定文件内容,若文件内容存在,保持原样,内容不存在,则添加指定内容
remt=10设置再次运行脚本的间隔时间,单位约等于秒
@echooff
sett=10
findstr456d:1.txt||echo456>>d:1.txt
ping-n%t%127.1>nul
start/min%~nx0
exit
『肆』 利用bat脚本能不能实现提取txt文本指定内容
代码存为ANSI编码哦!记得比对原文,以免内容有误,导致运行报错。
@echooff&title获取文本值By依梦琴瑶
cd/d"%~dp0"
for/f"delims="%%ain(1.txt)do(
set"Str=%%~a"
set"Str="!Str:;=","!""
for%%iin(!Str!)do(
echo%%i|find"=">nul2>nul&&(
for/f"tokens=2*delims=="%%vin(%%i)doecho%%~v
)
)
)
pause
set"Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set"Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start"""%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
『伍』 如何用bat逐行读取txt文件里面的内容,然后根据内容执行下一个命令
要引用抄在循环中动态赋值的变量,需要开启“延迟扩展”,然后用两个感叹号代替百分号来访问变量,修改并优化如下:
@echo
off
setlocal
enabledelayedexpansion
set
sourcefile=q:\0310-%date:~0,4%%date:~5,2%%date:~8,2%.txt.rpt
set
targetfile=%date:~0,4%%date:~5,2%%date:~8,2%rpt.txt
if
exist
%sourcefile%
(
for
/f
"tokens=*"
%%i
in
(%sourcefile%)
do
(
set
str=%%i
echo
集中开卡结果:!str!>>%targetfile%
)
)
endlocal