Board logo

标题: [文本处理] 批处理如何从指定文件夹里查找出文件名中含有一个txt文本里第一列的内容的文本文件 [打印本页]

作者: shero    时间: 2016-11-21 18:33     标题: 批处理如何从指定文件夹里查找出文件名中含有一个txt文本里第一列的内容的文本文件

以文件中txt文本文件中的第一列数据为准
例如:此文本文件是2012年6月24日的 打开里面第一列数据代表时间
文件夹中打开后第一个文本文件名为120624000154 表示2012年6月24日 0时1分54秒

以文本文件里面第一列中所有数据为准
找到文件夹中对应的文本文件
作者: pcl_test    时间: 2016-11-22 23:56

起码贴一些txt的内容出来吧,谁知道你是以什么划分列的
作者: GNU    时间: 2016-11-23 22:51

  1. @echo off
  2. for /f %%i in ('type "C:\文件列表.txt"') do (
  3.     if exist "C:\测试文件夹\%%i.txt" (
  4.         echo 找到文件:"C:\测试文件夹\%%i.txt"
  5.     )
  6. )
  7. pause
复制代码

作者: shero    时间: 2016-11-24 11:44

回复 2# pcl_test


    我上传了压缩包的呀 ··· 额···可能没上传上 不好意思 我再传一个看看
作者: terse    时间: 2016-11-24 14:49

回复 4# shero
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('dir /b /a-d *.txt') do (
  3.     if exist %%~ni\ (
  4.        set f=%%~ni
  5.        for /f %%j in (%%i) do (
  6.            set str=%%j
  7.            set str=!f!\!f:~2!!str::=!.txt
  8.            if exist !str! echo !str!
  9.        )
  10.     )
  11. )
  12. pause
复制代码

作者: pcl_test    时间: 2016-11-24 18:20

  1. set "fd=查找结果\"
  2. md "%fd%" 2>nul
  3. powershell -c "dir *.txt|%%{$fd=$_.BaseName;gc $_|%%{$t=$_.trim() -split '[:\s]';$f=$fd+'\'+$fd.substring(2)+($t[0..2] -join '')+'.txt';if(test-path $f){$f;md ('%fd%\'+$fd) -force|out-null;cp $f ('%fd%\'+$fd)}}}"
  4. pause
复制代码

作者: shero    时间: 2016-11-25 14:59

回复 5# terse


    谢谢您,我试过你给的程序了,在运行框里能筛选出结果,但是我想要的是把文本筛选出来,可能是我表示得不太清楚 谢谢啦
作者: shero    时间: 2016-11-25 15:37

回复 6# pcl_test


    版主大大,真的非常感谢,你的程序完美筛选出了我要的数据
但是,我还想多问一句,给的范例是我从两个不同的文件夹中挑出来的对应日期的两个匹配文件,如果在原本的文件夹下是否可以批处理呢?如果不好弄得话就算了, 已经帮我省了很多时间了
作者: pcl_test    时间: 2016-11-25 16:04

回复 8# shero

伸手就算了,为什么一开始不在顶楼说清楚,浪费回答者的时间
http://www.bathome.net/forum-5-1.html顶部本版规则
放在“6”文件夹里运行
  1. set "fd=查找结果\"
  2. md "%fd%" 2>nul
  3. powershell -c "dir '无云\' *.txt|%%{$fd=$_.BaseName;gc ('无云\'+$_)|%%{$t=$_.trim() -split '[:\s]';$f=$fd+'\'+$fd.substring(2)+($t[0..2] -join '')+'.txt';if(test-path $f){$f;md ('%fd%\'+$fd) -force|out-null;cp $f ('%fd%\'+$fd)}}}"
  4. pause
复制代码

作者: pcl_test    时间: 2016-11-25 16:25

本帖最后由 pcl_test 于 2016-11-25 16:35 编辑

回复 10# shero

得了吧,还交流学习,我之前发的资料看了么,说说你都学了什么呀,把你学习态度表现出来呀,别被我点破就会BB
http://www.bathome.net/redirect. ... 2973&ptid=42328
作者: terse    时间: 2016-11-26 22:03

回复 7# shero
把 下面 echo 替换为 copy 试呢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2