IT Geek:如何在同步中保持同名文件
IT Geek:如何在同步中保持同名文件
您很可能听说过诸如Dropbox之类的服务,这些服务用于在多台计算机上保持文件同步。但是,如果您想在一台机器上执行此操作,怎么办?也就是说,在整个计算机上保持具有相同文件名的文件同步,以便当其中一个文件更改时,它们都会被更新。
此功能可能非常有用,特别是对于开发人员或系统管理员来说,有时需要重复文件。
它是如何工作的
假设您是一名Web开发人员,经过一段时间,您已经将Javascript函数集合在一起,您可以在所有维护的站点中使用这些功能。当您在这个Javascript文件上添加或改进时(让我们称它为“Library ary.js”),只更新正在编辑的当前副本。这意味着,例如,如果您进行了错误修复或改进,您也必须手动将其应用到其他站点的源代码文件夹中。
我们的工具试图解决手动将更新的文件应用到每个源文件夹的问题。它所做的:
- 搜索指定根文件夹(%UserProfile%\Documents\Web站点)中所有具有指定名称(Library ary.js)的文件。
- 对于所有名为Library ary.js的文件,它定位最近修改过的文件,并记录其文件哈希值。
- 所有其他名为Library ary.js的文件(它们不是最新更新的副本)都会将它们的文件哈希值与最近的文件哈希值进行比较(在上一步中确定)。
- 如果文件哈希值不同,则用最近更新的副本替换Library ary.js的相应副本。
因为我们使用散列值来比较文件,所以我们确信任何替换的文件都确实与最近的副本不同。例如,如果要运行该进程并进行了5个文件替换,那么随后立即再次运行该进程将不会进行任何替换,因为文件哈希值现在是相同的。
更新到最新的复制工具
更新到最新副本工具是具有相同名称的批处理脚本的修改版本(这两个脚本都可以使用本文底部的链接下载),该脚本已转换为EXE文件,以便包含所需的NirSoft HashMyFiles实用程序。该工具必须使用指定的某些参数从命令行运行。如果您只需通过双击运行EXE文件,您将收到一条指示此文件的消息。
若要对最新副本使用Update,可以通过运行“UpdateToNewestCopy/?”来查看参数。它显示了以下对话框:
唯一需要的参数是SourceFold(例如%UserProfile%\Documents\Web站点)和文件名(Library ary.js)。但是,您可以像上面所描述的那样通过添加额外的开关来改变功能。
实例
下面的命令将在文件夹“C:\user\jinfkner\Documents\Code Files”中找到名为“Common.vb”的所有文件,执行替换操作,但在覆盖之前备份当前副本(此输出是为本文生成的顶级图像):
UpdateToNewestCopy“C:\user\jinfkner\Documents\Code Files”Common.vb/B
以下命令执行与上面相同的搜索操作,但是它只报告将被替换的文件,而不实际执行任何文件操作:
UpdateToNewestCopy“C:\user\jinfkner\Documents\Code Files”Common.vb/V
假设有一个名为“C:\config\FilesToSearch.txt”的文件,其内容如下:
Library.js
Common.vb
以下命令将搜索当前用户的MyDocuments文件夹,并报告对“Library ary.js”和“Common.vb”的任何更新,但实际上不会执行任何更新操作:
UpdateToNewestCopy“%UserProfile%\Documents”“C:\config\FilesToSearch.txt”/L/V
使过程自动化
这个过程是自动化的理想选择。通过创建具有指定设置的计划任务(没有什么特殊要求),并让它每天/每小时/每15分钟运行一次(取决于您的要求),您可以让文件以真正的设置和遗忘的方式同步。
下载
更新到最新的副本修改的可执行格式
更新到最新的副本源程序批处理文件(更多面向命令行)
以上是 IT Geek:如何在同步中保持同名文件 的全部内容, 来源链接: utcz.com/wiki/670123.html