FreeFileSync 一款开源的文件同步软件

FreeFileSync 用户手册:

调用外部程序

当你双击主窗口的文件(行), FreeFileSync 会调用默认的文件管理器:
Windows:explorer.exe /select, "%local_path%" & exit 0
macOS: open -R "%local_path%"
Linux: xdg-open "$(dirname "%local_path%")"
你可以在这里设置或者整合外部程序,点击 菜单 → 工具 → 选项 → Customize context menu 增加或者替换相应的命令。

所有的行都可以使用 小键盘 0–9快速定位,或者使用右键点击之后下拉选项。 第一行选项 可以直接双击执行。

除了常规的 宏命令这些宏命令也是可用的:
宏命令 描述
%item_path%
完整的文件或者文件夹路径
%local_path%
为 SFTP 和 MTP 设备上的文件在本地建立一个临时目录。否则共用 %item_path% 目录。
%item_name%
文件或文件夹名
%parent_path%
父文件夹名

  • 可以给宏命令加上 "2" 这个后缀代表另外一侧文件夹的路径(名字):
    %item_path2%, %local_path2%, %item_name2%, %parent_path2%.
  • 在宏命令后面添加 "s" 后缀,可以创建选择的所有目标的列表,不同宏命令之间用英文空格间隔:
    %item_paths%, %local_paths%, %item_names%, %parent_paths%.

示例:

  • 调用文件内容比较软件(WinMerge):
    "C:\Program Files (x86)\WinMerge\WinMergeU.exe" "%local_path%" "%local_path2%"

    macOS 上的 opendiff (需要 Xcode):
    opendiff "%local_path%" "%local_path2%"

  • 在 Windows Explorer 中显示文件:
    explorer.exe /select, "%local_path%" & exit 0
    备注
    Explorer.exe 没有设置退出码,FreeFileSync 没有退出码 0 就会报错 exit code = 0 ("成功")。 为了避免这个问题,调用的 Explorer 的时候增加(& exit 0) 来指定退出码。

  • 在命令行中打开所选项目:
    start cmd.exe /k cd /D "%parent_path%"
    备注
    FreeFileSync 默认是隐藏命令行窗口的, start 会打开一个新的窗口。 cmd.exe /k 是不退出命令行窗口,继续执行后续命令。 cd 是进入文件夹, (/D)是进入 D 盘。

  • 复制文件路径到剪贴板 (相当于按了 CTRL + C)
    echo %item_path%| clip

  • 把所选文件的路径列表写入到文本文档:
    echo %item_path% >> %csidl_Desktop%\file_list.txt

  • 使用 Quick Look 进行预览(macOS):
    qlmanage -p "%local_path%"

  • 使用宏指令向脚本传送选择文件列表:
    C:\my-script.cmd "%local_paths%"

备注
如果宏命令的文件路径中有空格,这个路径需要用英文双引号包裹起来。