请问如何在Total Commander中调用FreeFileSync去同步左右面板的文件夹?

如题,这个问题困惑了我很久,在网上查阅过很多相关资料,也始终无法解决。。

TotalCmd/DirectoryOpus通常是把目录或文件名传递给外部程序的命令行参数,也可以把多个文件目录形成一个列表文件喂给命令行
FFS我记得是通过自己的配置文件(xml格式的)去管理同步任务的。
所以问题可以拆分为:

  1. totalcmd获取左右面板所在文件夹路径,传递给你自己写的一个批处理脚本
  2. 这个批处理脚本负责用事先准备好的配置模版和输入的文件夹路径,拼接出一个FFS同步任务来
  3. 批处理脚本最后调用FFS执行同步任务
1 个赞

我用bcompare的调用参数:
%P%N %T%M /fileviewer=“Text Compare”

这个是针对文件,针对目录应该去掉%N和%M就行

感谢兄弟帮忙分析哈!我按你的步骤去查阅了FreeFileSync用户手册,但困于水平有限(非程序员),还是有点看不明白里面的参数 :sob:


Snipaste_2023-06-30_16-47-22
这是我在param中调用的参数,提示报错了,是不是因为我写的参数格式有误哈。。

你是油盐不进啊,ffs只接受ffs_gui,ffs_batch,xml这三种扩展名的配置文件(实质都是xml)。你写文件夹路径它是不认的

主要是水平有限,平时主要拿TC管理些文件,稍微设置点复杂的,就抓瞎了 :joy:

特意搜索了这个问题,我也遇到了,然后想到了tcimg这个软件可以调用一些程序的参数,
以下是配置文件,添加到usercmd.ini

[em_FreeFileSync_01]
cmd=%COMMANDER_PATH%\Tools\TCIMG\TCIMG.exe
param=start=FreeFileSync||"C:\TotalCommander64\Tools\FreeFileSync\LastRun.ffs_gui"||-dirpair||%P%N||%T%M
iconic=1
menu=使用FreeFileSync同步文件
button=%COMMANDER_PATH%\Tools\TCIMG\TCIMG.exe

要调用以上配置内容,需要使用TCIMG这个插件,然后在TCIMG文件夹中选择配置文件TCIMG.ini,在TCIMG.ini这个文件中找到[Programs]这个配置项,添加FreeFileSync路径,以我个人为例:FreeFileSync=COMMANDER_PATH\Tools\FreeFileSync\FreeFileSync.exe添加到[Programs]下面

TCIMG如何使用你需要查查,然后配置文件中的"C:\TotalCommander64\Tools\FreeFileSync\LastRun.ffs_gui"这个其中替换为你的FreeFileSync的目录地址,但不要替换LastRun.ffs_gui

该方案使用使用的是替换LastRun.ffs_gui这里面的两个参数值来实现同步选中的文件夹。

然后你可以使用设置快捷键或者拖放图标的方式来方便你同步选中的文件夹

首先去看下FreeFileSync支持的参数有哪些,比如Beyond Compare的同步参数是/sync,那么TC的参数设置就是/sync %X%p %t

这里对问题进行更新,直接这里调用即可
[em_FreeFileSync_01]
cmd=COMMANDER_PATH\Tools\FreeFileSync\FreeFileSync.exe
param=-dirpair %P%N %T%M
menu=使用FreeFileSync同步文件
button=COMMANDER_PATH\Tools\FreeFileSync\FreeFileSync.exe

1 个赞

之前的方式有时会弹出错误提示,按此更新后,更好用了!感谢大佬解惑,既细致又严谨!

目前是以两侧面板光标下的文件夹进行同步,可否设置成以两侧面板下的路径进行同步哈