如何用bat查看文件里是否有指定内容并移动。
这是一个没有做完的bat,我先说一下步骤:先将“新建文件夹”拖到bat图标上执行,它会创建名为“失败”的文件夹,并将Rep开头的文件放进去。我现在需要加一个功能,就是查看...
这是一个没有做完的bat,我先说一下步骤:先将“新建文件夹”拖到bat图标上执行,它会创建名为“失败”的文件夹,并将Rep开头的文件放进去。我现在需要加一个功能,就是查看所有Rep.xml文件里面的内容是否有“响应成功”这4个字,有就删除对应文件,没有就移动对应的文件到“失败”文件夹。注意:Rep.xml这些文件为UTF-8编码。
以下是bat的内容
@echo off
if "%~1"=="" (echo 此工具需要拖入文件到批处理图标上运行
ping 127.1>nul
exit)
echo %1
cd /D %1
set "fd1=%1"
set "fd2=%1\失败"
set str=Rep
for /r "%fd1%" %%a in ("*%str%*.xml") do (
if not exist "%fd2%\" md "%fd2%\"
move "%%a" "%fd2%\"
)
pause 展开
以下是bat的内容
@echo off
if "%~1"=="" (echo 此工具需要拖入文件到批处理图标上运行
ping 127.1>nul
exit)
echo %1
cd /D %1
set "fd1=%1"
set "fd2=%1\失败"
set str=Rep
for /r "%fd1%" %%a in ("*%str%*.xml") do (
if not exist "%fd2%\" md "%fd2%\"
move "%%a" "%fd2%\"
)
pause 展开
1个回答
展开全部
@echo off
if "%~1"=="" (
echo 此工具需要拖入文件夹到批处理图标上运行
ping 127.0.0.1 -n "4">nul
exit
)
dir /ad "%~1" >nul 2>nul || (
echo 此工具仅支持文件夹的拖入,不支持文件的拖入
ping 127.0.0.1 -n "4">nul
exit
)
echo %1
cd /d "%~1"
set FailDir=失败
set Str=Rep
for /r %%a in ("*%Str%*.xml") do (
if not "%%~dpa"=="%~1\%FailDir%\" (
findstr /c:"鍝嶅簲鎴愬姛" "%%~a" >nul && (
del /f /q "%%~a"
) || (
if not exist "%FailDir%" md "%FailDir%"
move "%%a" "%FailDir%\"
)
)
)
pause
除了增加判断xml文件中是否包含“响应成功”字符串的功能外,额外给你增加了拖入非文件夹后的提示代码,以及不重复处理“失败”目录中文件的代码。友情提醒,代码中有几个像乱码一样的中文字,那个不要改变哦!那个就是UTF-8“响应成功”的ANSI编码内容因为批处理读取utf8编码的文件中文字就会变成乱码一样。
追问
感谢大神!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询