gpt4 book ai didi

applescript - LibreOffice:递归转换文件夹和子文件夹中的文档

转载 作者:行者123 更新时间:2023-12-04 13:10:57 25 4
gpt4 key购买 nike

我以 doc 格式存储了许多文件,我只能在我的 mac 上使用 libreoffice 打开这些文件。
命令:

 ./soffice --headless --convert-to docx --outdir /home/user ~/Downloads/*.doc
做它应该做的:它转换所有 *.doc文件到 libreoffice *.docx文件。
我的问题是我有包含这些文件的文件夹和子文件夹。
有没有办法从起始目录中搜索所有文件夹,并让“soffice”在每个文件夹中完成其工作,将新版本( *.docx )准确地存储在找到原始( *.doc )的位置。
不幸的是,我不精通苹果脚本或终端来完成这项工作。然而,数百个文件夹中有 8000 个 doc 文件需要更新到 docx。
谢谢你的帮助。

最佳答案

Is there any way to search through all the folders from a starting directory and to let "soffice" do its job in each of these folders, storing the new versions (.docx) exactly where the original (.doc) was found.


这实际上可以在 中完成终端使用 find命令:
find '/path/to/directory' -type f -iname '*.doc' -execdir /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to docx '{}' \;
在上面的示例命令中,更改 '/path/to/directory'到目标目录的实际路径名,该目录包含包含 .doc 的子目录文件。
这是什么 find简而言之,命令确实可以找到所有 .doc '/path/to/directory'的分层目录结构内的文件并在包含 .doc 的每个子目录中执行命令文件并将每个文件转换到其子目录中的适当位置。

备注:
  • 中运行命令之前,始终确保您有适当的备份终端并且键入的命令将产生所需的行为!
  • 此命令假定没有 .docx已存在与 .doc 同名的文件子目录中的文件,因为它会自动覆盖任何现有的 .docx.doc 同名的文件文件。据我所知,soffice命令不提供不覆盖现有文件的选项。如果这将成为一个问题,那么将需要不同的解决方案。
  • 关于applescript - LibreOffice:递归转换文件夹和子文件夹中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65381089/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com