我想列出并索引目录中的文件(在我的情况下是视频文件,例如 .mp4、.avi...)
我用了 :
setlocal disableDelayedExpansion
for /f "delims=" %%A in ('forfiles /s /m * /c "cmd /c echo @relpath"') do (
set "file=%%~A"
setlocal enableDelayedExpansion
echo !file:~2!
endlocal
)
但是,这只会列出文件,还包括文件夹(我只想要视频文件)。例如:
"script.bat"
"video01.mp4"
"video02.webm"
"video03.avi"
"exportfolder"
"exportfolder\video04.avi"
"exportfolder\video05.mpg"
我也不想要这些论点:“脚本“ 和 ”导出文件夹“
我知道如果我将 *.avi 放入 forfiles 行中,就不会再遇到这个问题,但我必须为 eatch 视频格式复制这些脚本行...不是很酷,对吧?!如果我排除我不想列出的目录和文件,情况会更好,不是吗?
我想我必须把“/ad”放在某处来隐藏目录,但是在哪里呢?
但为了隐藏我不想列出的文件并索引其余文件(给予每个文件可用的变量名称和编号),我毫无头绪......也许在“!file:~2!”附近的某处!行?!
无论如何,让我告诉你我想要的东西:
1. "video01.mp4"
2. "video02.webm"
3. "video03.avi"
4. "exportfolder\video04.avi"
5. "exportfolder\video05.mpg"
这将使脚本的用户能够选择他想要的文件,例如:
set /p choice=What is the file you want to use ?
if %choice%==1 set file=indexlist1
if %choice%==2 set file=indexlist2
if %choice%==3 set file=indexlist3
if %choice%==4 set file=indexlist4
并且脚本将继续处理选定的文件...如果我设法捕获我想要的打印索引文件的值。
我希望您知道我想做什么?!
我知道有很多问题,但任何帮助都将非常有用!
谢谢 !
纪尧姆。
答案1
我只在 Windows 8 或 7 上运行该脚本;)
至于大量视频或文件会使 Windows cmd 疯狂滚动:此脚本仅供我公司内部使用,仅供少数用户(主要是编辑或 cg 编辑)使用。例如,脚本中的警告足以提醒用户不要在包含大量文件或视频的文件夹中运行该脚本。
但我同意,这个“forefiles”cmd 非常慢...即使在小文件夹(很少文件)中。
我的实际问题是,对于单个项目,可能有多个视频文件(例如由于客户需求),并且我想让用户能够在这个视频包中选择一个(或一些......但这是另一个问题......再次)他需要继续,然后发送它,例如出于验证目的,甚至批量调整大小,......一切皆有可能;)
我问过自己已经开发出来的软件,它们可以完全完成工作...但不完全符合我的要求,而且需要更多的点击、更多的时间、更少的直接控制或更少的特定需求,才能得到脚本能够提供的结果。
是的,我陷入了“时间就是金钱”的原则......我很遗憾地说。^^
那么,了解了所有这些,我的想法可以这样实现吗?
目前,我正在测试该脚本,并通过为输入文件提供特定的命名格式使其工作,但我想摆脱它!:)
谢谢,希望我回答正确,并且您能够帮助我找到答案!