如何用一个批处理文件生成某文件夹和子文件夹中所有文件的绝对路径,分别写入到对应的txt中(一对一)
如何用一个批处理文件生成某文件夹下(包括所有子文件夹)中所有文件的绝对路径,分别写入到对应的txt中(每个文件生成一个txt)我有个“E:\影视”文件夹,里面有若干层(1...
如何用一个批处理文件生成某文件夹下(包括所有子文件夹)中所有文件的绝对路径,分别写入到对应的txt中(每个文件生成一个txt)
我有个“E:\影视”文件夹,里面有若干层(10层以内)的子文件夹,如“电影”“电视剧”“动画片”之类,下面又分别是“中国电影”“美国电影”“韩剧”“国产剧”之类,其下是以电影名称命名的文件夹,如“变形金刚”“千与千寻”“潜伏”等,再里面是具体的影视文件,如“第1部.rmvb”、“上集.avi”,“第3集.f4v”,之类。
现在,我在“影视”文件夹下新建了“播放列表汇总”文件夹,要求通过一个批处理文件,达到:
1.“影视”文件夹下的所有影音文件,每一个文件都对应生成一个txt文件(即假如共有100个影音文件,则生成100个对应的txt文件):
A.该txt的文件命名规则是“上层文件夹名_这个影音文件名的前缀.mpcpl”(如“变形金刚_第1部.mpcpl”“千与千寻_上集”“潜伏_第3集.mpcpl”。
B.该txt文件的保存位置,全部保存到“E:\影音\播放列表汇总”文件夹中(有同名文件则覆盖)。
C.该txt文件的内容是这个影音文件的绝对路径,如(“E:\影音\电影\美国电影\变形金刚\第1部.rmvb”,“E:\影音\动画片\日本\千与千寻\上集.avi”“E:\影音\电视剧\国产剧\潜伏\第3集.f4v”,并且遵循下面的格式:
----- 分隔线---内容从下一行开始,无空行----
MPCPLAYLIST
1,type,0
1,filename,E:\影音\动画片\日本\千与千寻\上集.avi
----- 分隔线---内容到上一行结束,无空行--------
对上面内容说明:
1.分3行,第1行和第2行,以及第3行的“1,filename,”都保持不变;
2.第3行的第二个逗号后面的路径“E:\影音\动画片\日本\千与千寻\上集.avi”,是该txt文件所对应的这个影音文件的绝对路径,每个文件都不一样。
求高手给出这个批处理文件的代码。不胜感激。 展开
我有个“E:\影视”文件夹,里面有若干层(10层以内)的子文件夹,如“电影”“电视剧”“动画片”之类,下面又分别是“中国电影”“美国电影”“韩剧”“国产剧”之类,其下是以电影名称命名的文件夹,如“变形金刚”“千与千寻”“潜伏”等,再里面是具体的影视文件,如“第1部.rmvb”、“上集.avi”,“第3集.f4v”,之类。
现在,我在“影视”文件夹下新建了“播放列表汇总”文件夹,要求通过一个批处理文件,达到:
1.“影视”文件夹下的所有影音文件,每一个文件都对应生成一个txt文件(即假如共有100个影音文件,则生成100个对应的txt文件):
A.该txt的文件命名规则是“上层文件夹名_这个影音文件名的前缀.mpcpl”(如“变形金刚_第1部.mpcpl”“千与千寻_上集”“潜伏_第3集.mpcpl”。
B.该txt文件的保存位置,全部保存到“E:\影音\播放列表汇总”文件夹中(有同名文件则覆盖)。
C.该txt文件的内容是这个影音文件的绝对路径,如(“E:\影音\电影\美国电影\变形金刚\第1部.rmvb”,“E:\影音\动画片\日本\千与千寻\上集.avi”“E:\影音\电视剧\国产剧\潜伏\第3集.f4v”,并且遵循下面的格式:
----- 分隔线---内容从下一行开始,无空行----
MPCPLAYLIST
1,type,0
1,filename,E:\影音\动画片\日本\千与千寻\上集.avi
----- 分隔线---内容到上一行结束,无空行--------
对上面内容说明:
1.分3行,第1行和第2行,以及第3行的“1,filename,”都保持不变;
2.第3行的第二个逗号后面的路径“E:\影音\动画片\日本\千与千寻\上集.avi”,是该txt文件所对应的这个影音文件的绝对路径,每个文件都不一样。
求高手给出这个批处理文件的代码。不胜感激。 展开
2个回答
展开全部
可是这样?
@echo off
cd/d E:\影视
if not exist "E:\影音\播放列表汇总\" md "E:\影音\播放列表汇总"
for /f "delims=" %%I in ('dir/b/s/a-d *.mp4 *.rm *.rmvb *.flv') do (
for /f "delims=" %%j in ("%%~dpI.") do (
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo MPCPLAYLIST
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo 1,type,0
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo 1,filename,%%I
)
)
pause
@echo off
cd/d E:\影视
if not exist "E:\影音\播放列表汇总\" md "E:\影音\播放列表汇总"
for /f "delims=" %%I in ('dir/b/s/a-d *.mp4 *.rm *.rmvb *.flv') do (
for /f "delims=" %%j in ("%%~dpI.") do (
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo MPCPLAYLIST
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo 1,type,0
>>"E:\影音\播放列表汇总\%%~nj_%%~nI.mpcpl" echo 1,filename,%%I
)
)
pause
展开全部
; au3 自动化脚本实现 想要exe执行文件 请留下邮箱号
;
#include <file.au3>
$videofolder = "E:\影视"
$playlistfolder = "E:\影视\播放列表汇总"
$txt = "MPCPLAYLIST"&@CRLF&"1,type,0"&@CRLF&"1,filename,"
$subfolder = _FileListToArray($videofolder,"*",2)
For $i = 1 To $subfolder[0]
If $videofolder&"\"&$subfolder[$i] = $playlistfolder Then ContinueLoop
$str = search($videofolder&"\"&$subfolder[$i])
$array = StringSplit($str,"|")
For $j = 1 To $array[0]
$filename = $playlistfolder &"\"& getplaylistname($array[$j])
$file = FileOpen($filename,10)
$buffer = $txt&$array[$j]
FileWrite($file,$buffer)
FileClose($file)
Next
Next
Func search($path)
$ret = ""
$handle = FileFindFirstFile($path&"\*.*")
If $handle = -1 Then Return
While 1
$file = FileFindNextFile($handle)
If @error Then ExitLoop
If @extended Then
$tmp = search($path&"\"&$file)
Else
$tmp = $path&"\"&$file
EndIf
If $ret = "" Then
$ret = $tmp
Else
$ret = $ret&"|"&$tmp
EndIf
WEnd
Return $ret
EndFunc
Func getplaylistname($path)
$p1 = StringInStr($path,".",0,-1)
$p2 = StringInStr($path,"\",0,-1)
$tmp = StringLeft($path,$p2-1)
$p3 = StringInStr($tmp,"\",0,-1)
Return StringMid($path,$p3+1,$p2-$p3-1)&"_"&StringMid($path,$p2+1,$p1-$p2-1)&".mpcpl"
EndFunc
;
#include <file.au3>
$videofolder = "E:\影视"
$playlistfolder = "E:\影视\播放列表汇总"
$txt = "MPCPLAYLIST"&@CRLF&"1,type,0"&@CRLF&"1,filename,"
$subfolder = _FileListToArray($videofolder,"*",2)
For $i = 1 To $subfolder[0]
If $videofolder&"\"&$subfolder[$i] = $playlistfolder Then ContinueLoop
$str = search($videofolder&"\"&$subfolder[$i])
$array = StringSplit($str,"|")
For $j = 1 To $array[0]
$filename = $playlistfolder &"\"& getplaylistname($array[$j])
$file = FileOpen($filename,10)
$buffer = $txt&$array[$j]
FileWrite($file,$buffer)
FileClose($file)
Next
Next
Func search($path)
$ret = ""
$handle = FileFindFirstFile($path&"\*.*")
If $handle = -1 Then Return
While 1
$file = FileFindNextFile($handle)
If @error Then ExitLoop
If @extended Then
$tmp = search($path&"\"&$file)
Else
$tmp = $path&"\"&$file
EndIf
If $ret = "" Then
$ret = $tmp
Else
$ret = $ret&"|"&$tmp
EndIf
WEnd
Return $ret
EndFunc
Func getplaylistname($path)
$p1 = StringInStr($path,".",0,-1)
$p2 = StringInStr($path,"\",0,-1)
$tmp = StringLeft($path,$p2-1)
$p3 = StringInStr($tmp,"\",0,-1)
Return StringMid($path,$p3+1,$p2-$p3-1)&"_"&StringMid($path,$p2+1,$p1-$p2-1)&".mpcpl"
EndFunc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询