播放随机文件夹/子文件夹中的第一个视频

乔希

我想制作一个.bat文件,文件将在随机文件夹/子文件夹中的第一个文件中打开与该文件相同的位置.bat

我目前拥有的代码仅打开一个随机文件。

@echo off
setlocal enableextensions disabledelayedexpansion

set "rootFolder=G:\Movies\Anime" 

for /f "usebackq tokens=1,* delims=:" %%a in (`
    cmd /q /v /e /c "for /f delims^= %%a in ('dir /a-d /s /b "%rootFolder%"') do echo(!random!:%%a"
    ^| sort 2^>nul
    ^| cmd /q /e /v /c "set /p ".^=" & echo(!.!"
`) do start "" "%%~b"

我也有一个.bat文件,文件生成一个文本文件,其中包含同一位置的所有文件夹的列表。我不确定是否更容易引用它。

dir /b > Animelist.txt

另外,如果可能的话,如何排除它打开特定类型的文件,例如jpegs /其他.bat文件?

MC ND

你可以尝试一下

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "rootFolder=%cd%"
    set fileTypes= "*.avi" "*.mpeg" "*.mkv" 

    pushd "%rootFolder%" && (
        for /f "usebackq tokens=1,* delims=:" %%a in (`
            cmd /q /v /e /c "set p=&for /r %%a in (%fileTypes%) do if not !f!==%%~dpa (set f=%%~dpa&set /a ((%random% %% 16273^)+1^)*!random!&echo :%%~dpa)"
            ^| sort 2^>nul
            ^| cmd /q /e /v /c "set /p ".^=" && echo(!.!"
        `) do pushd "%%~b." && (
            for /f "delims=" %%c in ('
                dir /b /a-d /on %fileTypes% 2^>nul 
                ^| cmd /q /e /v /c "set /p ".^=" && echo(!.!"
            ') do start "" "%%~fc"
            popd
        )
        popd
    )

分解任务

  • 配置搜索位置和搜索内容(前两个set
  • 切换到起始文件夹(pushd
    • 对指定的文件类型执行递归搜索,并输出找到该文件的文件夹的名称(首先cmd在内部for /f
      • 由于可以在同一文件夹中找到多个文件,因此请确保我们不会输出重复的元素(if在first内cmd
    • 为每个文件夹生成一个随机数字作为前缀(set /a),然后输出文件夹(echo
    • 对随机数(sort上的列表进行排序
    • 获取列表中的第一个文件夹。由于列表是按随机数排序的,因此该文件夹已被随机选择(cmd位于的第二个位置for /f %%a
    • 舍弃随机数,仅检索文件夹(delimstokens中的原因for /f %%a
  • 切换到选定的文件夹(pushd
    • 在所选文件夹(dir内列出指定类型的文件
    • 从此列表中仅选择第一个文件(cmd
    • 检索所选文件(for /f %%c
    • 启动选定的文件(start
    • 返回上一个文件夹(popd
  • 返回起始文件夹(popd

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果文件夹长度超过限制,则删除文件夹中的第一个文件

在AHK中打开文件夹中的第一个文件的方法

使用python复制文件夹和子文件夹,但只复制子文件夹中的第一个文件

Powershell从文件夹中捕获第一个文件名

如何打开文件夹中的第一个文件

打开递归文件夹列表中的第一个文件

将第一个文件创建到文件夹中并运行它 ssh

bash列出当前文件夹中的子文件夹没有得到预期的结果[仅提供第一个文件夹]

从目录中的所有文件夹名称中删除第一个单词

删除字符串中的第一个文件夹

删除路径中的第一个文件夹

ListBlobs() 只能看到 Azure blob 容器中的第一个文件夹

返回Powershell中的第一个匹配文件夹

分别在每个文件夹分支中查找第一个匹配项

批处理:打开目录中的第一个文件夹

仅URL中第一个文件夹的RewriteRule

如何从文件夹名称中删除第一个单词?

Shell脚本:将第一个文件从多个文件夹复制到一个文件夹中

将文件夹中的第一个文件移动到另一个文件夹

使用 OSX 终端在该文件夹内的第一个文件后重命名文件夹

即使我想打印所有文件,也只打印文件夹中第一个文件的内容

从网址获取第一个和最后一个文件夹

如何截断提示中显示第一个和最后一个文件夹的工作目录?

如何从所有子文件夹中取出文件并将其移至第一个文件夹

将第一个文件夹设置为可变批处理文件

播放特定文件夹中的视频

将第一个文件从每个文件夹复制到Windows中的新位置

重命名文件夹中的特定文件:仅更改第一个数字

使用命令提示符打开文件夹中的第一个文件