如何在多个文件夹运行相同的 cmd 代码

如何在多个文件夹运行相同的 cmd 代码

我正在尝试在多个文件夹中运行相同的 cmd 代码:

ffmpeg -i "00.mkv" -codec copy "00.mp4"

所以我有几个文件夹.mkv,我想将它们转换为 mp4,但仍将它们保存在自己的文件夹中。

我已经将它们重命名为相同的名称,认为这会有所帮助,但我还应该尝试其他什么来使该过程正常工作吗?

或者除了 cmd 之外还有其他选项吗?

答案1

或者除了 cmd 之外还有其他选项吗?

您可以在cmd中执行此操作!



@echo off && cd /d "%~dpn0" 

set "_ffmpeg=C:\Program Files\FFmpeg\bin\ffmpeg.exe"
set "_ffmpeg=2^>^&1 "%_ffmpeg%" -hide_banner -nostats -y -i"

for /r %%i in (*.mkv)do %_ffmpeg% "%%~fi" -codec copy "%%~dpni.mp4"

答案2

虽然你的问题没有完整的例子,但我想我可以帮上忙

你可以使用 python 来自动执行此任务

import glob
all_folders = glob.glob("*")

OUTPUT_FOLDER_NAME = "converted"
INPUT_FILE_EXTENSION_ = ".mkv"
OUTPUT_FILE_EXTENSION = ".mp4"

for folder_name in folder_names:

    out_path = pathlib.Path(folder_name) / OUTPUT_FOLDER_NAME
    out_path.mkdir(exist_ok=True)

    print(list(pathlib.Path(folder_name).glob(f"*{INPUT_FILE_EXTENSION}")))

    for file in pathlib.Path(folder_name).glob(f"*{INPUT_FILE_EXTENSION}"):

        out_file = pathlib.Path(out_path) / pathlib.Path(file.stem + file.suffix.replace(INPUT_FILE_EXTENSION, OUTPUT_FILE_EXTENSION))
        if not out_file.exists():
            print(f"Processing: {file}")
            os.system(f"ffmpeg -i \"{file}\" -coded copy \"{out_file}\"")

            print(f"Outputed {out_file}")
        else:
            print(f"Skipping {file}...")

确保将此脚本另存为batch_ffmpeg_converter.py(或任何你想要的)所有文件夹所在的同一目录 inc,并且该目录仅包含文件夹(无文件),然后使用以下命令运行它

python batch_ffmpeg_converter.py

相关内容