# 脚本参考

脚本是一个简单的文本文件，包含可以控制程序并自动执行文件操作或生成报告的命令列表。 另请参阅脚本和示例脚本。
符号 | 含义
| | 分隔可能的选择
() | 围绕必需的表达式
[] | 围绕可选的表达式
<> | 围绕所需用户文本的描述
[...] | 跟随可以重复的表达式
您可以在任何命令中使用lt代替left或rt代替right。 以下是脚本命令(按字母顺序): ATTRIB BEEP COLLAPSE COMPARE COPY COPYTO CRITERIA DELETE EXPAND FILE-REPORT FILTER FOLDER-REPORT HEX-REPORT LOAD LOG MEDIA-REPORT MOVE MOVETO OPTION PICTURE-REPORT REGISTRY-REPORT RENAME SELECT SNAPSHOT SYNC TABLE-REPORT TEXT-REPORT TOUCH VERSION-REPORT ATTRIB 用法: attrib (+|-)<属性集 1> [(+|-)<属性集 2> [...]] 其中 <attribute set> 是: [a][s][h][r] macOS 和 Linux 版本不支持 attrib。 在当前选择中设置(+)或清除(-)DOS 文件属性。 使用a表示存档，s表示系统，h表示隐藏，r表示只读。 示例: attrib +h attrib +sh -a BEEP 用法: beep 使 PC 扬声器发出蜂鸣声。 无论/silent命令行开关如何，蜂鸣都会发生。 COLLAPSE 用法: collapse all collapse <路径 1> [<路径 2> [...]] 折叠所有文件夹或指定路径的文件夹。 路径是相对于基础文件夹的，不能包含通配符。 示例: collapse "我的文件夹 1" "我的文件夹 2" COMPARE 用法: compare [CRC|binary|rules-based] 使用比较类型比较当前选择的内容。 默认情况下，使用最近的比较类型。 此命令只比较文件一次。 要在修改后更改文件的比较方式，请使用CRITERIA。 COPY 用法: copy (left->right|right->left) 将选定的文件/文件夹复制到指示的方向。 COPYTO 用法: copyto [left|right|all] [path:(relative|base|none)] <路径> 使用路径选项将指定侧的选定文件/文件夹复制到指定路径。 •base保留所有选定项目相对于基文件夹的完整文件夹结构。 •relative保留所有选定项目的最小相对文件夹结构。 •默认值为all和path:none。 CRITERIA 用法: criteria [attrib:<属性集>] [version] [timestamp[:[<秒数>sec][;IgnoreDST]]] [size|CRC|binary|rules-based] [timezone:(ignore|(left|right)(+|-)<0..12>)] [follow-symlinks] [ignore-unimportant] [owner] [group] [permissions] 其中 <attribute set> 是: [a][s][h][r] macOS 和 Linux 版本不支持 attrib。 设置所有比较条件设置。 •attrib启用指定 DOS 文件属性的比较。 使用a表示存档，s表示系统，h表示隐藏，r表示只读。 •version启用 exe 和 dll 等应用程序文件中常见的版本信息比较。 •timestamp启用时间戳比较。 o<number of seconds>sec将差异视为匹配，如果差异在容差秒数内。 o IgnoreDST将正好 1 小时的差异视为匹配。 •size、CRC、binary和rules-based是比较内容的可能方式。 •timezone忽略时区差异或将时区偏移量应用于指定侧。 •follow-symlinks将符号链接和 NTFS 连接点视为目标文件或文件夹，而不是链接本身。 •ignore-unimportant将不重要的差异视为匹配。 •所有者比较文件的Unix所有者。 •组比较文件的Unix组。 •权限比较文件的Unix访问权限。 示例: criteria attrib:sh timestamp:2sec;IgnoreDST rules-based timezone:left+6 DELETE 用法: delete [recyclebin=(yes|no)] (left|right|all) 删除指定侧的当前选定文件/文件夹。 recyclebin参数仅在操作系统支持的地方有效。 网络驱动器、远程服务和存档文件不支持它。 EXPAND 用法: expand all expand <路径 1> [<路径 2> [...]] 展开指定的子文件夹或所有子文件夹。 路径相对于基文件夹，不能有通配符。 子文件夹必须展开，其内容才能被其他命令使用，如SELECT。 expand all不会展开文件过滤器设置从比较中排除的子文件夹。 FILE-REPORT 用法: file-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 根据处理的文件类型生成当前选定文件的报告。 例如，它将为与表格比较文件格式关联的文件类型生成TABLE-REPORT。 •layout控制报告的外观，可以是side-by-side或summary。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant将不重要文本中的差异视为匹配，在所有布局中可用。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 o line-numbers在side-by-side布局中包含行号。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 示例: file-report layout:side-by-side options:display-mismatches & output-to:printer output-options:print-color,wrap-word FILTER 用法: filter <文件掩码> filter cutoff:([<|>](<时间戳>|<天数>[days])|none) filter size:([<|>]<数字>[KB|MB|GB|TB]|none) filter attrib:((+|-)<属性集>|none) filter exclude-protected filter include-protected filter unixtype:((+|-)<Unix 集合>|none) 其中 <attribute set> 是: [a][c][e][h][i][l][o][p][r][s][t][u][z] 其中<Unix集合>指： [b][c][l][p][r][s] macOS 和 Linux 版本不支持 attrib，exclude-protected 或 include-protected。 通过名称筛选（文件掩码）、日期筛选（截止时间）或其他筛选条件（大小、属性、排除受保护、包含受保护或Unix类型）来控制参与比较的文件夹和文件类型。 •名称过滤器根据文件和文件夹的名称和路径包含和排除文件和文件夹。 多个掩码可以用分号分隔。 要指示掩码是排除掩码，请使用前导减号(-)。 要指示掩码影响文件夹，请使用尾部反斜杠(\)。 •cutoff排除所有早于(<)或晚于(>)时间戳或当前系统日期(<number of days>days)的文件。 默认情况下，使用cutoff:<。 none可用于移除日期过滤。 日期解析相当宽松，但如果您希望确保正确解析，请使用操作系统区域设置指定的格式。 （请参阅控制面板 > 区域和语言设置。） 时间是可选的，应跟在日期后面(cutoff:"12/31/2012 12:00pm")。 请记住，无论何时术语包含空格，都要使用引号(" ")。 •size排除所有小于(<)或大于(>)给定大小的文件。 默认情况下，大小以字节为单位，但您可以在末尾添加KB、MB、GB或TB以指示值分别为千字节、兆字节、吉字节或太字节。 none可用于移除大小过滤。 •attrib将比较限制为具有包含的 DOS 文件属性(+)且没有排除属性(-)的文件。 使用a代表存档属性，c代表压缩属性，e代表加密属性，h代表隐藏属性，i代表内容未索引属性，l代表符号链接，o代表脱机属性，p代表固定属性，r代表只读属性，s代表系统属性，t代表临时属性，u代表未固定属性，z代表稀疏属性。 none可用于移除属性过滤。 •exclude-protected排除同时设置了系统和隐藏属性的文件和文件夹。 •include-protected包括同时设置了系统和隐藏属性的文件和文件夹。 •unixtype用于排除特定类型（+）或非特定类型（-）的文件。 使用b代表块特殊文件，c代表字符特殊文件，l代表符号链接，p代表FIFO管道文件，r代表普通文件，s代表套接字文件。 none可用于取消文件类型筛选。 示例: filter "*.pas;*.dpr;*.dfm" filter cutoff:<7days filter cutoff:>"Dec 31, 2012" filter cutoff:"12/31/2012 12:00pm" filter attrib:-sh filter "*.txt;-我的文件夹\" attrib:+r FOLDER-REPORT 用法: folder-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] 生成当前加载的基文件夹的文件夹比较报告。 文件夹显示在其当前状态。 要包括子文件夹，请在此之前添加expand all命令。 •layout控制报告的外观，可以是side-by-side、summary或xml。 •options是可选的。 o显示过滤器标志控制报告中包括哪些文件。 可能的值有 display-all，display-mismatches，display-no-orphans，display-mismatches-no-orphans，display-orphans，display-left-newer，display-right-newer，display-left-newer-orphans，display-right-newer-orphans，display-left-orphans，display-right-orphans 和 display-matches。 默认情况下，使用display-all。 o通过使用标志 column-vcs、column-revision、column-version、column-size、column-crc、column-timestamp、column-attributes、column-owner 和 column-group，可以在报告中包含可选列，各列之间用逗号分隔。 默认情况下，包括column-size和column-timestamp。 column-none可以单独使用以清除默认列。 o使用标志include-file-links生成文件报告并在文件夹报告中包含指向它们的链接。 只有同时是并排和 HTML 的文件夹报告才能使用此标志。 •title、output-to和output-options参数记录在常用报告参数下。 示例: folder-report layout:side-by-side & options:column-version,column-size,column-timestamp & output-to:clipboard output-options:html-color folder-report layout:xml output-to:"C:\我的报告.xml" HEX-REPORT 用法: hex-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的十六进制比较报告。 •layout控制报告的外观，可以是side-by-side、summary或interleaved。 •options是可选的，用于每种布局的不同方式。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 o line-numbers在side-by-side布局中包含字节地址。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 LOAD 用法: load <会话> load [create:(all|left|right)] <左路径> [<右路径>] load <default> 加载指定的文件夹比较会话、指定的基文件夹或带有默认设置的新文件夹比较会话(load <default>)。 无法加载基文件夹将导致脚本终止。 •加载会话会导致使用该会话的所有设置，除了显示过滤器(显示全部、仅显示不匹配等)。 •加载基文件夹使用当前活动的设置。 默认情况下，使用程序默认值。 •可选的create参数会在基文件夹不存在时创建它。 示例: load "我的会话" load "C:\我的文件夹" "X:\你的文件夹" load <default> LOG 用法: log [none|normal|verbose] [[append:]<文件名>] 控制日志的详细程度以及日志存储的位置。 •none、normal和verbose决定日志中使用的细节量。 日志最初被禁用，当模式从none更改时开始。 •append:导致日志添加到文件而不是替换它。 默认情况下，日志输出为当前文件夹(例如 Windows"开始于"文件夹中的快捷方式属性)中的 Log.txt。 MEDIA-REPORT 用法: media-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的媒体比较报告。 •layout控制报告的外观，可以是side-by-side或summary。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant将不重要文本中的差异视为匹配，在所有布局中可用。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 MOVE 用法: move (left->right|right->left) 将选定的文件/文件夹移动到指定方向。 MOVETO 用法: moveto [left|right|all] [path:(relative|base|none)] <路径> 使用路径选项将指定侧的选定文件/文件夹移动到指定路径。 •base保留所有选定项目相对于基文件夹的完整文件夹结构。 •relative保留所有选定项目的最小相对文件夹结构。 •默认值为all和path:none。 OPTION 用法: option stop-on-error option confirm:(prompt|yes-to-all|no-to-all) 调整脚本处理选项。 •stop-on-error使脚本观察各种错误情况，包括文件操作错误，并在发生错误时提示用户继续。 •confirm可以使用prompt、yes-to-all或no-to-all来处理由于文件操作而发生的确认对话框。 默认情况下，使用prompt。 PICTURE-REPORT 用法: picture-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的图片比较报告。 •layout控制报告的外观，可以是side-by-side或summary。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant在summary布局中将不重要文本中的差异视为匹配。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 REGISTRY-REPORT 用法: registry-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的注册表比较报告。 •layout控制报告的外观，可以是side-by-side或summary。 •options是可选的，用于每种布局的不同方式。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 RENAME 用法: rename [regexpr <旧掩码>] <新掩码> 使用指定的新掩码对当前选择执行多文件重命名。 regexpr使用旧掩码执行正则表达式重命名。 默认情况下，执行 DOS 样式的重命名。 示例: rename *.bak rename regexpr (...)(...)\.txt $2$1.txt SELECT 用法: select <选择掩码 1> [<选择掩码 2> [...]] 其中 <selection mask> 是以下之一: all [(left|right|all).][(exact|diff|newer|older|orphan|all).][(files|folders|all)] empty.folders Select 控制可以对哪些文件和文件夹进行操作。 只有匹配至少一个选择掩码的文件和文件夹才是选择的一部分。 •left、right或all将选择限制在指定侧。 默认情况下，使用全部。 •exact、diff、newer、older、orphan或all根据比较结果限制选择。 diff是指时间戳以外的差异。 要比较时间戳，请改用newer或older。 文件夹必须仅包含指定的结果类型才会受到影响。 默认情况下，使用全部。 •files、folders或all将选择限制为文件、文件夹或两者。 默认情况下，使用全部。 •empty.folders是一个特殊的选择掩码，将选择空文件夹。 示例: select all select left select exact select files select right.diff select left.folders select newer.files right.older.files SNAPSHOT 用法: snapshot [save-crc] [save-version] [expand-archives] [follow-symlinks] [include-empty] [no-filters] left|right|path:<路径> [output:<目标>] 保存指定文件夹的只读快照。 •save-crc为所有文件计算 CRC 并将其作为快照的一部分存储。 •save-version存储可执行文件的版本信息。 •expand-archives以展开格式存储档案文件的内容。 •follow-symlinks存储符号链接指向的文件和文件夹。 •include-empty存储空的或仅包含排除文件的文件夹。 •no-filters存储所有文件，而不考虑活动的文件名过滤器。 •left、right和path指示要存储哪个文件夹。 left或right将保存已加载基文件夹之一的快照，而path将保存指定路径的快照。 •output是可选的，决定快照将保存在哪里。 默认情况下，它将保存在当前文件夹中。 o如果目标是完全限定的文件名，则将是快照的名称。 如果目标没有扩展名，将使用.bcss。 o如果未包含目标或目标是文件夹，将根据源文件夹的名称和当前系统日期生成文件名，例如folder_2012-12-31.bcss。 如有必要，将在生成的名称中添加额外的数字，以防止覆盖现有快照。 示例: snapshot save-crc save-version no-filters path:C:\ output:D:\ snapshot left output:"我的快照.bcss" SYNC 用法: sync [visible] [create-empty] (update|mirror):(left->right|right->left|all) 通过复制和删除文件同步文件夹。 此命令不使用当前选择。 •visible启用"仅影响可见文件"行为。 只有展开的文件夹中的文件才会受到影响。 •create-empty启用"创建空文件夹"行为。 •update将较新的和孤立的文件复制到指示的方向，使另一侧的孤立文件和较新文件保持不变。 使用all作为方向表示双向同步，并将较新的和孤立的文件复制到两个方向。 •mirror使目标文件夹与源文件夹相同。 较新、较旧、不同和孤立的文件都被复制到目标。 目标中的孤立文件被删除。 all方向在此上下文中不适用且无效。 示例: sync create-empty mirror:left->right TABLE-REPORT 用法: data-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的表格比较报告。 •layout控制报告的外观，可以是side-by-side、summary或interleaved。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant将不重要文本中的差异视为匹配，在所有布局中可用。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 o line-numbers在side-by-side布局中包含行号。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 TEXT-REPORT 用法: text-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的文本比较报告。 •layout控制报告的外观，可以是side-by-side、summary、interleaved、patch、statistics或xml。 不推荐使用的布局over-under和composite已被interleaved取代。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant将不重要文本中的差异视为匹配，在所有布局中可用。 o display-all、display-mismatches、display-context或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary、patch和statistics。 默认情况下，使用display-all。 o line-numbers在side-by-side布局中包含行号。 o strikeout-left-diffs在interleaved布局中删除左差异行。 o strikeout-right-diffs在interleaved布局中删除右差异行。 o patch-normal、patch-context或patch-unified格式在patch布局中可用。 默认情况下，使用patch-normal。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 不推荐使用的stats-descriptive选项将生成摘要报告，并在日志中发布警告。 不推荐使用的stats-tabular选项在statistics布局中被忽略:statistics布局现在始终是表格式(CSV)的。 示例: text-report layout:interleaved options:display-context & output-to:printer output-options:print-color,wrap-word text-report layout:patch options:patch-unified & output-to:"我的报告.txt" TOUCH 用法: touch (left->right|right->left) touch (left|right|all):(now|<时间戳>) 将时间戳从一侧的文件复制到另一侧，或将指定侧的所有文件的时间戳设置为当前系统时间(now)或指定的时间戳。 您必须先选择文件才能修改时间。 VERSION-REPORT 用法: version-report layout:<布局> [options:<选项>] [title:<报告标题>] output-to:(printer|clipboard|<文件名>) [output-options:<选项>] [<比较>] 生成当前选定文件的版本比较报告。 •layout控制报告的外观，可以是side-by-side或summary。 •options是可选的，用于每种布局的不同方式。 o ignore-unimportant将不重要文本中的差异视为匹配，在所有布局中可用。 o display-all、display-mismatches或display-matches可用于控制在所有布局中包含比较的哪些行，除了summary。 默认情况下，使用display-all。 •title、output-to、output-options和<comparison>参数记录在常用报告参数下。 常用报告参数 报告命令 (data-report，file-report，folder-report，hex-report，media-report，picture-report，registry-report，text-report 和 version-report) 必须包含有关报告发送位置的信息，并且可以包含有关输出格式的其他信息。 •title控制报告顶部显示的标题。 •output-to控制输出目标。 它可以是printer、clipboard或文件名。 •output-options是可选的，用于每个输出目标的不同方式。 o print-color或print-mono颜色方案可用于printer输出。 默认情况下，使用print-mono。 o print-portrait或print-landscape方向可用于printer输出。 默认情况下，使用print-portrait。 o wrap-none、wrap-character或wrap-word控制长行是否换行。 printer输出可以使用所有三个选项。 HTML输出可以使用wrap-none和wrap-word。 默认情况下，使用wrap-none。 o html-color、html-mono或html-custom是输出为 HTML 而不是纯文本所必需的。 这些选项可用于clipboard和file输出。 html-custom需要外部样式表的文件名或 URL。 •<comparison> 可以是会话名称或一对文件名。 文件报告将使用指定的比较，而不是脚本中已选择的文件。 使用已保存的会话时，比较类型必须与报告类型匹配(例如，表格比较会话必须使用data-report或file-report)。 示例: data-report layout:interleaved output-to:printer & output-options:print-color,print-landscape file-report layout:summary output-to:clipboard & output-options:wrap-word,html-color text-report layout:patch options:patch-unified & output-to:"我的报告.txt"