【问题标题】:Automator adding unwanted line breaksAutomator 添加不需要的换行符
【发布时间】:2019-03-15 02:52:41
【问题描述】:

我正在使用 Automator 创建一个 HTML 页面,一切正常,但我遇到了一个小问题。用户在开始时被要求提供信息,然后将其设置为变量。该页面是通过使用 Get Specified Text 获取一些代码并将其复制到剪贴板、获取其中一个变量然后将它们都放入文本文档来创建的。然后重复此过程几次,最终创建一个 HTML 文件。我遇到了问题,因为 Automator 在指定文本的每一位和每个变量之间创建换行符(也许是回车?)。所以,我想看起来像这样:

<code grabbed using "Get Specified Text" followed by a Variable. And now some more text and another Variable.>

最终看起来像这样:

<code grabbed using "Get Specified Text" followed by a
Variable
. And now some more text and another 
Variable
.>

这将我的页面分成几个部分。有没有办法防止这些换行符?

【问题讨论】:

  • 你在做什么来组装变量和剪贴板文本?
  • 我正在打开一个新的 TextEdit 文档,使用 Get Specified Text 获取特定代码位,使用 Copy to Clipboard 将该代码放入剪贴板,使用 Get Value of Variable 调用其中一个在开始时定义的变量和 TextEdit 的 Set Contents 将它们都放在文档中。只是对其他代码实例和其他变量重复此操作,将它们附加到文档的末尾。
  • 这行不通 - 各种操作返回的项目作为 list 传递,粘贴到文档中时用换行符分隔。尝试在输出到文件的操作之前立即添加 Run Shell 脚本 操作(使用 Pass Input: to stdin 并将脚本设置为 cat)(这将连接项目)。
  • 太棒了,我会试一试。谢谢。
  • 嗯,它似乎不起作用。我正在使用获取指定文本,然后复制到剪贴板。然后,我使用 cat 和将输入传递到 stdin 运行 shell 脚本,然后调用变量,然后设置内容,但没有任何改变。我还尝试在 Set Contents 之前立即运行 shell 脚本,但这并没有什么不同。我确定我做错了什么。

标签: applescript automator


【解决方案1】:

从一个动作传递到另一个动作的项目在一个列表中,因此设置 TextEdit 内容似乎用换行符分隔各个项目,这是正常的段落分隔符。

许多文本操作假定 TextEdit 和/或富文本并且不使用变量(或与其他纯文本操作一起使用),因此可以在操作之前使用 Run AppleScript 操作转换或连接项目,例如 (Mojave):

Automator(或 TextEdit)并不是一个非常好的 HTML 编辑工具。你可以看看BBEdit(精简版是免费的),它也有很好的AppleScript支持。

编辑:

在 Run AppleScript 操作中使用以下内容,使用指定的分隔符组合文本(本示例使用空字符串):

on run {input, parameters}
  set separator to "" -- text to separate the items with
  set tempTID to AppleScript's text item delimiters
  set AppleScript's text item delimiters to separator
  set output to input as text
  set AppleScript's text item delimiters to tempTID
  return output
end run

【讨论】:

  • 快到了。它只是在连接的段落之间插入一个空格。
  • 而且我显然不希望它删除所有空格,只删除连接字符串之间的空格。
  • 您不会使用常规的 Automator 操作来获得那种控制 - 它们并不是真正为此而设计的。其他选项是在 Run AppleScript 或 Run Shell Script 操作中提供大部分功能(使用 Automator 获取脚本信息),或单独使用脚本.
  • 我已编辑我的答案以使用 Run AppleScript 操作来组合文本项。
  • 就是这样。它完美地连接了字符串和变量。唯一的问题是,当我使用相同的方法进入下一个字符串和变量时,它位于下一行,而不是与前一行连接。也许我可以尝试将新制作的行剪切到剪贴板并将其与下一行或其他东西连接起来。看起来有点像黑客,但它可以工作。你太棒了!
猜你喜欢
  • 2012-10-12
  • 1970-01-01
  • 2017-01-07
  • 2011-02-02
  • 2015-08-08
  • 1970-01-01
  • 2012-03-08
  • 2018-09-09
  • 2019-09-27
相关资源
最近更新 更多