[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样查询查询含有列表123.txt里面的关键字的xml文件并复制到固定的盘?

求大神帮忙写一个批处理:查询查询含有列表123.txt里面的关键字的xml文件并复制到固定的路径,123.txt面保存的是240个序列号

  1. @echo off
  2. for /f "delims=" %%i in ('type "123.txt"') do (
  3.     for /f "delims=" %%j in ('findstr /m /c:"%%i" *.xml') do (
  4.         copy /y "%%j" "D:\固定的路径\"
  5.     )
  6. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. set "固定的路径=D:\123\test"
  7. set "文本=123.txt"
  8. if not exist "%固定的路径%" md "%固定的路径%"
  9. cd /d "%~dp0"
  10. powershell ^
  11.     $txtlines=@(gc '%文本%');^
  12.     dir *.xml^|?{$_ -is [System.IO.FileInfo]}^|%%{^
  13.         $xmltext=@(gc $_.FullName) -join \"`r`n\";^
  14.         for($i=0;$i -lt $txtlines.length;$i++){^
  15.             if($xmltext.Contains($txtlines[$i])){^
  16.                 cp -liter $_.FullName '%固定的路径%' -force;^
  17.                 write-host ('['+$txtlines[$i]+']'+$_.FullName+' --^> %固定的路径%');^
  18.                 break;^
  19.             };^
  20.         };^
  21.     }
  22. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# Batcher

大神你好,请问findstr /m /c:"%%i" *.xml这指的是从C盘搜索含有文本内列表的关键字的xml文件吗?另外我的123.txt文本里面的序列号需要排序标识吗?
我稍微修改了一下,但是无法运行,请指教。注:需要搜寻的文件在这个目录下D:\VHE LOG\,123.txt也在这个D:\VHE LOG\目录下

@echo off
for /f "delims=" %%i in ('type "123.txt"') do (
    for /f "delims=" %%j in ('findstr /m /d:"%%i" *.xml') do (
        copy /y "%%j" "D:\VHE LOG\BACKUP\"
    )
)
study

TOP

回复 4# ICECREEN
  1. @echo off
  2. cd /d "D:\VHE LOG\"
  3. for /f "delims=" %%i in ('type "123.txt"') do (
  4.     for /f "delims=" %%j in ('findstr /m /c:"%%i" *.xml') do (
  5.         copy /y "%%j" "D:\VHE LOG\BACKUP\"
  6.     )
  7. )
复制代码
不要修改findstr命令后面的 /c:
它不是表示盘符
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# zaqmlp


    你的有病毒,你妹的,害我 ,我举报你
study

TOP

回复 6# ICECREEN

嗯,来吧,举报我
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

mshta 调用 vbscript 或 javascript 会被 Defender 误报,没有病毒。

TOP

回复 8# WHY

我的电脑运行他的脚本后出现了感染性病毒,一直生成了很多垃圾文件,不仅仅是那个mshta而已
study

TOP

回复 8# WHY


    你可以就这个问题帮忙给个建议吗,谢谢
study

TOP

回复 5# Batcher


    您好,您给的代码执行不成功呢,是否因为我的TXT文本里面是按列排序的160个序列号太多了。我对你的代码的理解是,将文本123.txt的值赋值给%%I,然后在文件夹内循环查找带有%%I的关键字的xml文件赋值给%%J,最后将%%J copy到BACKUP文件夹内。
study

TOP

回复 2# Batcher

您好,我稍微修改了下,现在已经可以运行,但是现在又面临一个新的问题,就是里面有很多重复的文件,只是时间不一样而已,可以删除重复多余的文件只留一个吗?

    @echo off
cd /d "D:\VHE LOG\"
for /f "tokens=*" %%i in ('type "123.txt"') do (
    for /f "delims=" %%j in ('dir /a-d /b /s ^| findstr "%%i"') do (
        copy "%%j" "D:\VHE LOG\BACKUP\"
    )
)
study

TOP

回复 12# ICECREEN


copy /y "%%j" "D:\VHE LOG\BACKUP\"
试试这样可以吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# Batcher


    试过了,不是完全重名的,不会覆盖。文件名后缀是日期,前缀一致时间不同视为重复,这种覆盖不了吧。列子:FtsRes_VHE-SFT1_ZSR515_20190409175643437_20194995643472.xml和FtsRes_VHE-SFT1_515_20190409181422428_201949101422492视为重复。这种请问怎么覆盖呢?有什么好的建议吗?
study

TOP

回复 14# ICECREEN


    前缀是 FtsRes 还是 FtsRes_VHE-SFT1?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表