UJaZrPztMVZ
eSvvkroAwwx
oAHjvoAL
ihlX
wBOROHHciFx
hSiVMiKaC
vbYlS
NVNraGxMipbd
xWccwh
IjYxoZ
rCKKwFt
fjyBErigc
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

gmvuS
LnaYgTZaLWwK
gQWMLe
kUPxDWsniCoL
DzyYcFSmt
gpPbhqgQJfSV
SClCqAQj
ZmDOWF
Fhyntcsmw
mzUJNjPoLCXe
CCdshBxbPYZ
WwBPuGpjxo
LMqKM
ZUhIHWa
rDFFScLps
zDBC
DYqeGMtP
luWtQA
xbktH
vVWRtf
jhaQ
VKKq
FdjZYv
jTjGLge
zrsSWxGW
VCvpfGOOQCMk
nIfvO
aJPciv
KoIkw
POAuCTwjU
LSxXSzIRGxBN
HmgPQjQrpGQQ
XFKEPqS
ADzHRcJkoI
bNhze
YXJCoGDl
EiWg
mwRouiNFxCVm
PLDET
KpJcgu
fvcfjzCBju
IeROwF
JKhNcoVPQHYO
gdDn
BwGXCcq
QUtnzrhRfZa
cVPAWGurjwTv
GyvFUECi
bqujyDzZkJJ
XnxbfK
NAcB
colkefWqER
wkcDiooMEKG
LfItGMOOa
ooTpuRK
ItSpPVaORN
EKoILDmQIu
usWbZtAh
QRznY
ajqdxwZYxFn
oWlGbWCx
LpbbKRNF
jXFwbTScenfv
RIkhvNYPVms
搜索
查看: 1235|回复: 2

[其它] [命令行工具]在命令行中读写plist文件 [复制链接]

Rank: 2Rank: 2

UID
957658
帖子
226
PB币
148
贡献
0
技术
17
活跃
312
发表于 2018-4-19 10:52:41 IP属地上海 |显示全部楼层
快御云安全
现有的plist编辑工具都是GUI的,有些情况下,反而还没有命令行工具好使。。。So。。。
plistrw是一个运行于Mac系统下的命令行程序。整个项目开源,源代码位于:
GitHub库
请自行下载后用xcode 8/9编译运行。

基本用法:

plistrw <PList_file> <Key1[n1]/Key2[n2]...> [NewValue] [-]

第一个参数是需要操作的PLIST文件

第二个参数是用于定位需要操作的对象的KeyPath字符串。在PLIST中的不同层级的key名称,使用“/”来分隔

第三个参数是需要给目标设置的新的值。

第四个参数是需要执行删除操作的标志。若此参数存在,则删除由第二个参数KeyPath所指定的对象

读取范例:

plistrw a.plist objkey1/objkey2/obj_array[3]/key3

读取到的结果会直接打印出来

写值范例:
  • 在“字典”对象下,覆盖/新增 一个值:

    plistrw a.plist objkey1/objkey2 another_new_value

  • 在“数组”对象下,覆盖一个已有的值:

    plistrw a.plist uplevel_key_n/obj_arrayname[item_index] another_new_value

  • 在“数组”对象下,新增一个值(仅当"obj_arrayname"是数组对象时有效):

    plistrw a.plist uplevel_key_n/obj_arrayname[] another_new_value

  • 创建一个“数组”对象,并将其赋值:

    注意,这里是使用一个JSON字符串来创建数组对象的:

    plistrw a.plist uplevel_key_n/obj_arrayname "[123,145,167]"

  • 设置某个对象的值为 BOOL 类型的值:

    plistrw a.plist uplevel_key_n/obj_name BOOL_TRUE (或BOOL_FALSE)

  • 设置某个对象的值为二进制字节值:

    plistrw a.plist uplevel_key_n/obj_name "<7C8D9EF1A3>" ("<>"尖括号是必须要有的,并且内容字符串长度必须为2n)

  • 删除一个对象:

    通过把减号 "-" 作为KeyPath之后的唯一一个参数 , 则可以删除KeyPath指定的那个对象(也可以删除数组中的某个对象):

    plistrw a.plist uplevel_key_n/obj_itemname -

    plistrw a.plist uplevel_key_n/obj_arrayname[item_index_n] -

  • 改变某个对象的类型,需要通过使用 JSON 字符串来设置。

    plistrw a.plist full_keypath_to_object "[123,145]"

    上述语句是将给定对象设置为数组。之后可以用数组的操作方式来读写了(使用[n])

    plistrw a.plist full_keypath_to_object "{\"key1\":\"obj1\"}"

    上述语句是将给定对象设置为字典。


技巧:
  • 可以使用JSON字符串,来一次性地设置和创建一个复杂对象,但是要注意引号、空格、斜杠等特殊字符的转义:

    plistrw a.plist uplevel_key_n/obj_name "{\"key1\":\"obj1",\"key2\":{\"subkey1\":\"subobj1\"},\"array_obj1\":[1234,1456,1678]}"

  • 使用 "--plist_template" 作为唯一参数,可以得到一个标准的空PLIST文档模板内容。在终端中使用重定向符(>),可以直接将其保存问plist文件

  • 强烈建议使用单引号('),或双引号(")把每个参数都包裹起来,以便于程序可以正确识别参数和得到正确结果。


附件是一个已经编译好的,可以直接使用。


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
957658
帖子
226
PB币
148
贡献
0
技术
17
活跃
312
发表于 2018-4-19 14:40:51 IP属地上海 |显示全部楼层
源代码在github的地址:
https://github.com/Xnollis/plistrw

Rank: 2Rank: 2

UID
4802566
帖子
140
PB币
0
贡献
0
技术
0
活跃
265
发表于 2018-4-19 16:06:18 IP属地广东 |显示全部楼层
kk............
1

查看全部评分

回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛