标题: [文件操作] 批处理如何将多个文件夹里的所有文件的文件名输出到以该文件夹命名的txt文本里 [打印本页]
作者: web 时间: 2012-11-17 22:51 标题: 批处理如何将多个文件夹里的所有文件的文件名输出到以该文件夹命名的txt文本里
本帖最后由 pcl_test 于 2016-7-11 10:41 编辑
n个文件夹 里边有文件
保存文件的名称 不包括后缀名 需要按文件夹名称命名txt对应保存
文件夹:沐雪琪 文件:sf.mp3
文件夹:沐雪 文件:sfw.mp3
保存为
沐雪琪.txt 内容 sf
沐雪.txt 内容 sfw
作者: tmplinshi 时间: 2012-11-17 23:18
本帖最后由 tmplinshi 于 2012-11-17 23:21 编辑
- @echo off
- set "folder=e:\我的文档\桌面"
- rem 如果是处理批处理所在目录,可把上一行删掉,或者改为 set "folder=."
-
- for /f %%a in (' dir /a:-d /b /s "%folder%\*" ') do (
- if /i "%%~xa" neq ".txt" (
- for %%b in ("%%a\..") do (
- echo,%%~na>"%%~nxb.txt"
-
- rem 如果要把 txt 保存到对应的文件夹,请把 "%%~nxb.txt" 改为
- rem "%%~dpa%%~nxb.txt"
- )
- )
- )
-
- pause
复制代码
作者: web 时间: 2012-11-18 00:22
回复 2# tmplinshi
婧,何京 - 最后一刻才明白.mp3
只会输出 婧,何京
多个文件怎么只写最后一个
可能是我没有说清楚吧 不好意思
作者: tmplinshi 时间: 2012-11-18 00:37
本帖最后由 tmplinshi 于 2012-11-18 00:39 编辑
回复 3# web
抱歉,粗心了。- @echo off
- set "folder=e:\我的文档\桌面"
- rem 如果是处理批处理所在目录,可把上一行删掉,或者改为 set "folder=."
-
- for /f "delims=" %%a in (' dir /a:-d /b /s "%folder%\*" ') do (
- if /i "%%~xa" neq ".txt" (
- for %%b in ("%%a\..") do (
- echo,%%~na>"%%~nxb.txt"
-
- rem 如果要把 txt 保存到对应的文件夹,请把 "%%~nxb.txt" 改为
- rem "%%~dpa%%~nxb.txt"
- )
- )
- )
-
- pause
复制代码
因为你希望的结果是以文件夹为文件名,如果文件夹中有多个文件,当然都是同一个名称。
作者: web 时间: 2012-11-18 00:59
回复 4# tmplinshi
谢谢 这回输出是我想要的结果
还有个问题我想没理解了 就是文件夹里边有n个文件
婧 - 放弃爱你.mp3
婧 - 爱情剧终.mp3
婧,何京 - 最后一刻才明白.mp3
婧 - 放弃爱你
婧 - 爱情剧终
婧,何京 - 最后一刻才明白
不是只要一个都要输出
抱歉
作者: tmplinshi 时间: 2012-11-18 01:08
回复 5# web
先把之前生成的 txt 文件删掉,再运行以下代码:
@echo off
set "folder=e:\我的文档\桌面"
rem 如果是处理批处理所在目录,可把上一行删掉,或者改为 set "folder=."
for /f "delims=" %%a in (' dir /a:-d /b /s "%folder%\*" ') do (
if /i "%%~xa" neq ".txt" (
for %%b in ("%%a\..") do (
echo,%%~na>>"%%~nxb.txt"
rem 如果要把 txt 保存到对应的文件夹,请把 "%%~nxb.txt" 改为
rem "%%~dpa%%~nxb.txt"
)
)
)
pause
作者: web 时间: 2012-11-18 01:16
回复 6# tmplinshi
好了 没问题 非常感谢
感谢tmplinshi 坚持不懈的帮助
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |