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

[文本处理] 批处理如何实现文件筛选的问题

在E盘中有很多录音文件 ,有个“需查询”文本里面都是需要查询的文件名(一行一个,一个个号码那种),现需要查询E盘下及子文件夹下是否有文本中的文件,如果没有在E盘下 “未查询到”文本中记录查询的号码

回复 14# flashercs


    谢谢老哥 我已经看到了 非常感谢

TOP

回复 14# flashercs


    老哥 我没看欸

TOP

回复 13# 断桥残雪


    已修改了.
微信:flashercs
QQ:49908356

TOP

回复 12# flashercs


    ---------- C:\USERS\徐鹏力\APPDATA\LOCAL\TEMP\~18312~
1.13656991327-2020-11-03.mp3
通话录音@136 5699 1327(13656991327)_20201103111701.mp3
通话录音@136 5699 1327(13656991327)_20201104093209.mp3

---------- C:\USERS\徐鹏力\APPDATA\LOCAL\TEMP\~18312~
18156304991

这是测试的两个号码 都记录在未查询到文本中不管查没查到 ,我实际只需要将未查询到的号码放入这个文本,而且不需要路径等信息,只需要号码,查询到多个的话只显示一个,且显示号码

TOP

回复 11# 断桥残雪


    10楼就是你的要求啊 有问题吗
微信:flashercs
QQ:49908356

TOP

回复 10# flashercs


    谢谢老哥 辛苦再改下 可能我说的不是很明白 就是E盘有很多录音文件 文件名都为”2072301-20201102-165454-15080173722-cuishou.mp3“这个格式 ,
”需查询“文本里有很多号码(一行一个),如果查询到不做任何操作,如果没有查询到就将未查询到的这串号码记录到”未查询到“文本中,此文本也是只有一行一行的号码。

TOP

本帖最后由 flashercs 于 2022-1-17 14:27 编辑
  1. @echo off
  2. cd /d "%~dp0"
  3. set searchfile="e:\需查询.txt"
  4. set outfile="e:\未查询到.txt"
  5. set tmpfile="%temp%\~%random%~"
  6. (
  7.   for /r E:\ %%A in (*) do echo %%~nxA
  8. )>%tmpfile%
  9. (
  10. for /f "usebackq delims=" %%A in (%searchfile%) do (
  11.   find /i "%%A" %tmpfile% >nul 2>nul||echo %%A
  12. )
  13. )>>%outfile%
  14. del %tmpfile%
  15. pause
复制代码
回复 7# 断桥残雪
微信:flashercs
QQ:49908356

TOP

回复 8# qixiaobin0715


    不好意思不好意思

TOP

不是别人代码写的不对,而是你开始的表达有问题。别人只知其一,而不知其二其三其四。。。

TOP

回复 3# flashercs


    老哥你这个好像不行 我的录音文件名都是“2072301-20201102-165454-15080173722-cuishou.mp3"这样的 文本里我只放一个手机号码的话好像还是查不到的

TOP

回复 4# qixiaobin0715


    2072301-20201102-165454-15080173722-cuishou
文件名就是这样的 然后我查询手机号码

TOP

回复 4# qixiaobin0715


    不需要拓展名的 老哥

TOP

其一、需查询文本文件中是否包含扩展名;
其二、E盘中,是否都是录音文件。如果是倒是无关大局,否则是要提供录音文件的扩展名的。

TOP

本帖最后由 flashercs 于 2022-1-17 12:44 编辑
  1. @echo off
  2. cd /d "%~dp0"
  3. set searchfile="e:\需查询.txt"
  4. set outfile="e:\未查询到.txt"
  5. set tmpfile="%temp%\~%random%~"
  6. (
  7.   for /r E:\ %%A in (*) do echo %%~nxA
  8. )>%tmpfile%
  9. >%outfile% findstr /lixvg:%tmpfile% %searchfile%
  10. del %tmpfile%
  11. pause
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表