2

通常推荐的使用文本项目分隔符的方法是这样的:

set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "x"
set l to text items of "aaxbb"
set AppleScript's text item delimiters to tid
l

我通常会做这样的事情:

set text item delimiters to "x"
text items of "aaxbb"

http://macscripter.net/viewtopic.php?id=24725

重要的是要注意以下消息:“总是把它们放回去”。AppleScript 会记住它的分隔符设置。即使您在脚本编辑器中打开新的第二个脚本,您在第一个中设置的分隔符也将应用于第二个。

虽然我无法重现它。某些版本的 OS X 中的行为是否发生了变化?

AppleScript:权威指南

只要 AppleScript 脚本组件的此实例存在,文本项分隔符的值就会持续存在。因为您可能会在存在此脚本组件的情况下运行多个脚本,其中任何一个都可能设置文本项分隔符,所以不要对文本项分隔符的值做任何假设是明智的。

仍然是这种情况,还是您能举出文本项分隔符属性影响其他脚本的任何示例?

4

3 回答 3

3

我记得读过一些关于你所说的这个变化的东西,不再需要重置它们,但是在谷歌搜索后我找不到任何关于它的信息。因此,我做了一个快速测试。我制作了这两个脚本并在 AppleScript Editor 中运行它们。首先这个...

set text item delimiters to "something"
return text item delimiters

然后这个...

return text item delimiters

第二个脚本返回 {""}。所以似乎第一个脚本不会影响第二个。我在 10.6 和 10.8 中都进行了测试,结果相同。

这是applescript发行说明。我找不到 10.7 或 10.8 的发行说明。搜索他们也没有发现关于这个主题的任何内容......

http://developer.apple.com/library/mac/#releasenotes/AppleScript/RN-AppleScript/RN-10_3/RN-10_3.html#//apple_ref/doc/uid/TP40000982-CH103-SW1

因此,我对你没有明确的答案。每个人都说要重置它们,但我的简单测试表明它不是必需的。

你也是对的,你不需要告诉块之外的“Applescript”。

于 2013-01-30T09:12:58.390 回答
3

我在https://developer.apple.com/library/mac/#documentation/applescript/conceptual/applescriptlangguide/conceptual/ASLR_fundamentals.html在 AppleScript Fundamentals > Global Constants in AppleScript > text item delimiters 部分中找到了这个花絮:


如果您在脚本编辑器中更改文本项分隔符属性,它会保持更改状态,直到您恢复其先前的值或退出脚本编辑器并再次启动它。如果您在脚本应用程序中更改文本项分隔符,它会在该应用程序中保持更改,直到您恢复其先前的值或直到脚本应用程序退出;但是,在脚本编辑器或您运行的其他脚本应用程序中,分隔符不会更改。


于 2013-07-19T21:19:36.433 回答
0

如果你运行一个脚本应用程序,那么我想技术上没有必要让它们休息,因为一旦它退出,它就退出了!

但是,如果您在脚本编辑器中运行脚本,那么对分隔符的更改将保留在脚本编辑器的该脚本中。我今天才看到。

但是几年前发生的变化是它不会影响在脚本编辑器中打开的其他脚本/窗口。

此外,当作为应用程序运行时,它只会影响该特定脚本。

于 2015-04-22T10:10:15.680 回答