1

我是 Apple 脚本(以及一般脚本)的新手。我有一个终端命令,它使用cfgutil来显示很多 iPad 的信息。

命令如下:

./cfgutil -f --format JSON get-property name firmwareVersion batteryCurrentCapacity passcodeProtected configurationProfiles installedApps

cfgutil 在 Apple Configurator 2 应用程序中

/Applications/Apple\\ Configurator\\ 2.app/Contents/MacOS/cfgutil

我制作了一个 Apple Script 来从 Python 脚本生成一个文本文件。

on run {input, parameters}
    tell application "Terminal"
        activate
        do script with command "/Applications/Apple\\ Configurator\\ 2.app/Contents/MacOS/cfgutil -f --format JSON get-property name firmwareVersion batteryCurrentCapacity passcodeProtected configurationProfiles installedApps | python3  /Users/admin/Desktop/jsonpy3.py > /Users/admin/Desktop/Check.txt | top; exit"
    end tell
end run

Python脚本(感谢flaf):

#!/usr/bin/env python3

import sys
import json

human_readable_fields = {
    'name': 'Nom',
    'firmwareVersion': 'Firmware',
    'batteryCurrentCapacity': 'Charge',
    'passcodeProtected': 'Passcode',
    'configurationProfiles': 'Profils',
    'installedApps': 'Applications',
}

template = ' '.join(
  ['{name:<25.25}', # name will be truncated to 25 characters.
   '{firmwareVersion:>10}',
   '{batteryCurrentCapacity:>10}',
   '{passcodeProtected:>15}',
   '{configurationProfiles:>10}',
   '{installedApps:>15}']
)

data = json.loads(''.join(sys.stdin.readlines()))
device_ids = data['Devices']

devices = []

for device_id in device_ids:

    d = data['Output'][device_id]

    device = {'id': device_id,
              'name': d['name'],
              'firmwareVersion': d['firmwareVersion'],
              'batteryCurrentCapacity': d['batteryCurrentCapacity'],
              'passcodeProtected': d['passcodeProtected'],
              'configurationProfiles': len(d['configurationProfiles']),
              'installedApps': len(d['installedApps'])}

    devices.append(device)

# The header.
print(template.format(**human_readable_fields))

for device in devices:

    if device['passcodeProtected']:
        device['passcodeProtected'] = 'activé'
    else:
        device['passcodeProtected'] = 'désactivé'

    # A device.
    print(template.format(**device))

但我更喜欢在弹出窗口中显示结果的唯一 Apple 脚本。有好人帮助我吗?:)

4

0 回答 0