标题: [文件操作] [已解决]根据条件生成文件? [打印本页]
作者: czvde 时间: 2020-3-23 15:29 标题: [已解决]根据条件生成文件?
本帖最后由 czvde 于 2020-3-25 06:05 编辑
样例
文件夹里面的文件:
IMG_001一二.jpg
IMG_014 三四.jpg
IMG_014.jpg
批处理效果
abc.txt文本内容如下:
IMG_001
IMG_014
问题已解决
作者: netdzb 时间: 2020-3-23 19:08
回复 1# czvde
批处理我不会写,建议用python吧。给你一个参考的代码
# -*- coding:utf-8 -*-
#遍历目录树
import os,fnmatch
def all_files(root, patterns='*', single_level=False, yield_folder=False):
# 将模式从字符串中取出放入列表中
patterns = patterns.split(';')
for path, subdirs, files in os.walk(root):
if yield_folder:
files.extend(subdirs)
files.sort()
for fname in files:
for pt in patterns:
if fnmatch.fnmatch(fname, pt):
yield os.path.join(path, fname)
break
if single_level:
break
# fnmatch 来检查文件名匹配模式
# os.path fnmatch os.walk 生成器
thefile=list(all_files(''E:\\projects\\test-log4j\\', '*.class;*.java;*.properties;*.xml'))
for item in thefile:
print item
作者: went 时间: 2020-3-23 19:55
本帖最后由 went 于 2020-3-23 19:57 编辑
- @echo off
- powershell -c "dir | foreach{if($_.BaseName -match '(.*?_\d+).*'){$Matches[1]}}"
- pause&exit
复制代码
这种用powershell好点
作者: netdzb 时间: 2020-3-23 20:54
回复 3# went
代码能解释一下吗?
Q
作者: went 时间: 2020-3-23 21:31
回复 4# netdzb
调用powershell正则匹配数字,然后取匹配结果就好了
作者: czvde 时间: 2020-3-24 00:06
本帖最后由 czvde 于 2020-3-25 06:02 编辑
回复 3# went
您的bat运行结果是:
IMG_001
IMG_014
IMG_014
需要结果是:
IMG_001
IMG_014
大大如何修改?
作者: went 时间: 2020-3-24 01:17
回复 6# czvde - @echo off
- powershell -c "dir | foreach{if($_.BaseName -match '(.*?_\d+).*'){$Matches[1]}} | Sort-Object -Unique"
- pause&exit
复制代码
去重就好了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |