如何用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
展开
 我来答
依梦琴瑶
高粉答主

2017-08-15 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
@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编码的文件中文字就会变成乱码一样。

追问
感谢大神!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式