You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写AppleScript批量提取文件夹(含子文件夹)中XML文件的指定标签值并保存至文本文件

请求编写AppleScript批量提取文件夹(含子文件夹)中XML文件的指定标签值并保存至文本文件

嘿,我帮你搞定这个批量处理的需求啦!之前的脚本只能处理单个文件,还有一些语法小问题,我重新写了一个完整的AppleScript,它能递归遍历你指定的文件夹(包括所有子文件夹)里的XML文件,提取<egJob:description>标签里的内容,然后按你要的格式把文件名和对应值保存到桌面的output.txt里。

下面是完整的脚本:

-- 让用户选择要处理的目标文件夹
set targetFolder to choose folder with prompt "请选择包含XML文件的文件夹(含子文件夹)"

-- 定义要提取的标签
set startTag to "<egJob:description>"
set endTag to "</egJob:description>"

-- 准备输出文件(桌面的output.txt)
set outputPath to ((path to desktop as text) & "output.txt")
set outputFile to open for access file outputPath with write permission
set eof outputFile to 0 -- 清空文件内容

-- 递归遍历所有XML文件
tell application "System Events"
    set xmlFiles to every file of entire contents of targetFolder whose name extension is "xml"
end tell

-- 逐个处理每个XML文件
repeat with xmlFile in xmlFiles
    set fileName to name of xmlFile
    try
        -- 读取文件内容
        set fileContent to read xmlFile as «class utf8»
        
        -- 计算标签的位置
        set startPos to offset of startTag in fileContent
        if startPos is 0 then
            -- 如果找不到起始标签,写入提示
            write fileName & " = 未找到目标标签" & linefeed to outputFile starting at eof
            continue
        end if
        set startContentPos to startPos + length of startTag
        set endPos to offset of endTag in fileContent starting from startContentPos
        if endPos is 0 then
            -- 如果找不到结束标签,写入提示
            write fileName & " = 标签不完整" & linefeed to outputFile starting at eof
            continue
        end if
        
        -- 提取标签内容
        set tagContent to text startContentPos through (endPos - 1) of fileContent
        
        -- 按要求格式写入结果
        write fileName & " = " & tagContent & linefeed to outputFile starting at eof
    on error errMsg
        -- 处理读取文件时的错误
        write fileName & " = 读取错误:" & errMsg & linefeed to outputFile starting at eof
    end try
end repeat

-- 关闭输出文件
close access outputFile

-- 提示处理完成
display dialog "处理完成!结果已保存到桌面的output.txt文件中。" buttons {"确定"} default button 1

脚本说明:

  • 灵活选择文件夹:运行脚本后会弹出对话框让你选择要处理的文件夹,不用手动修改路径,更方便
  • 递归遍历子文件夹:会自动处理目标文件夹下所有层级的子文件夹里的XML文件
  • 异常处理:如果某个XML文件里找不到目标标签、标签不完整或者读取出错,都会在结果里标注出来,不会中断整个处理流程
  • 编码兼容:用UTF-8编码读取文件,避免中文或特殊字符乱码的问题

使用方法:

  1. 打开Mac自带的「脚本编辑器」(在启动台的「其他」文件夹里)
  2. 把上面的代码粘贴进去
  3. 点击工具栏的「运行」按钮(▶️)
  4. 在弹出的对话框里选择你要处理的文件夹
  5. 处理完成后,桌面会生成output.txt,里面就是你要的所有结果啦!

备注:内容来源于stack exchange,提问作者Carloudidlidou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:09:51