标题: [文件操作] [已解决]批处理如何将一个文件夹中的多个文件名输出到TXT文本中 [打印本页]
作者: qinyoyo 时间: 2018-4-25 09:55 标题: [已解决]批处理如何将一个文件夹中的多个文件名输出到TXT文本中
各位大神,新人求指教,现在需要将D:\testpdf中的PDF文件名提取到D:\testpdf\1.txt 中。
但是由于PDF文件同个文件名有不同版本号,我只需要提取一个,判别条件是取前11位,相同文件只需在1.txt中出现一次,该如何实现?
例如下面这个图面,最终我要在1.txt中得到下面的输出:
1070924392_
1070928211_
1070928396_
Z10M1005493 javascript:;
求高手指点,非常感谢!!!
作者: qinyoyo 时间: 2018-4-25 10:51
我只会输出所有,不会提取,有没有大神指点一下,这是我弄的
@echo off
set listfile=D:\testpdf\1.txt
if exist %tmp%\tmp.txt del %tmp%\tmp.txt
if exist "%listfile%" del "%listfile%"
echo 正在查找PDF文件...
dir /s /b "D:\testpdf"|find /i ".pdf">>%tmp%\tmp.txt
echo.
echo 正在输出结果...
for /f "delims=" %%i in (%tmp%\tmp.txt) do (
echo %%~ni>>"%listfile%"
title=%%~fi
)
del %tmp%\tmp.txt
copy /y "%listfile%" "D:\testpdf"
exit /b
作者: qinyoyo 时间: 2018-4-25 10:57
最后输出是这样的
1070924392_A
1070924392__
1070928211_A
1070928211__
1070928396_B
1070928396_C
1070928396_D
Z10M1005493_A
Z10M1005493_B
Z10M1005493_C
Z10M1005493__
作者: cfwyy77_bat 时间: 2018-4-25 13:28
来个python的,- import os
- import sys
-
- f11name = set(i[0:11] for i in os.listdir(os.path.dirname(sys.argv[0])) if i[-3:]=="pdf")
- with open("1.txt","w") as f:
- for i in f11name:
- f.write(i)
- f.write("\n")
复制代码
作者: Batcher 时间: 2018-4-25 13:59
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('dir /b "D:\testpdf\*.pdf"') do (
- set "FileName=%%~ni"
- set "FilePrefix=!FileName:~0,11!"
- if not defined v!FilePrefix! (
- echo,!FilePrefix!
- set v!FilePrefix!=1
- )
- ))>"D:\testpdf\1.txt"
复制代码
作者: qinyoyo 时间: 2018-4-25 14:07
回复 5# Batcher
非常感谢!!!!
试了一下,很好用。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |