{"id":18864829,"url":"https://github.com/hi5/tcsynccomments","last_synced_at":"2026-02-12T08:31:59.984Z","repository":{"id":150288755,"uuid":"308859585","full_name":"hi5/TCSyncComments","owner":"hi5","description":"TCSyncComments - copy file comments from descript.ion file(s)","archived":false,"fork":false,"pushed_at":"2020-10-31T10:59:23.000Z","size":14,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-15T03:57:19.466Z","etag":null,"topics":["file-comments","totalcommander"],"latest_commit_sha":null,"homepage":"","language":"AutoHotkey","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hi5.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-31T10:46:52.000Z","updated_at":"2025-02-19T14:14:57.000Z","dependencies_parsed_at":"2023-04-08T16:01:57.372Z","dependency_job_id":null,"html_url":"https://github.com/hi5/TCSyncComments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hi5/TCSyncComments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FTCSyncComments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FTCSyncComments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FTCSyncComments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FTCSyncComments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hi5","download_url":"https://codeload.github.com/hi5/TCSyncComments/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FTCSyncComments/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29361818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-comments","totalcommander"],"created_at":"2024-11-08T04:44:11.369Z","updated_at":"2026-02-12T08:31:59.970Z","avatar_url":"https://github.com/hi5.png","language":"AutoHotkey","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# TCSyncComments - copy file comments from descript.ion file(s)\n\n## DESCRIPT.ION\n\n\u003e ... **[Total Commander]** use[s] the file DESCRIPT.ION to store file descriptions.  \n\u003e This file is created as a hidden file in each subdirectory which has  \n\u003e descriptions, and deleted when all descriptions are removed or when all  \n\u003e files with descriptions are deleted. If you remove the hidden attribute  \n\u003e from the file, it will not be hidden again.  \n\u003e ... **[Total Commander]** will copy, delete, or move all the information on a  \n\u003e line in DESCRIPT.ION, including information owned by other programs, when  \n\u003e performing the same action on the corresponding file. They will also  \n\u003e change the name if a file is renamed.  \n\u003e -- Source https://web.archive.org/web/20160318122322/https://jpsoft.com/ascii/descfile.txt\n\n## Total Commander (TC)\n\n- Edit file comments with Ctrl+Z; or Files menu, Edit File Comment.\n- Comments can be displayed with Show - Comments (Ctrl+Shift+F2)[1] within the file lists, or by moving the mouse over a file name. For the latter, you need to enable Win32-style tips in Configuration - Display.\n- In \"Configuration, Operation\": Set the preferred format + Turn \"Copy comments with files\" on or off.\n\nRefer to TC Help file for further information.\n\n[1] Tip: Setup a Auto Switch Mode rule to automatically \"Show comments\" when you enter a folder which has descript.ion file.\n\n## Purpose of TCSyncComments:\n\nCopy file comments (descript.ion format only) from:\n\n- Source to Target folder\n- Current Folder (trying to find matching file names using Sift Ngram)\n- Select or All Files\n\n+ Edit file comments before copying\n\nThis script will not copy, move or alter (selected) files - only the comments stored or added to a descript.ion  \n\nNote: \n\n- it does not (yet) try to use the \"set type\" file encoding from TC.\n- use at your own risk, backup descript.ion when in doubt. \n\n## Use case\n\nWith \"Copy comments with files\" turned off, file comments are not copied when copying, moving, or renaming a file.\n\nTCSyncComments copies file comments it can find in descript.ion **or** try to add \"new\" ones based on file name \"match\",\neither in the current or target folder. (Target folder is source of descript.ion to use)\n\nAlways make sure the panel where you want to UPDATE descript.ion is the active one. This is the \"current\" panel below.\n\n\nc:\\data\\project: (target panel)\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003eComment\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eApple.txt \u003c/td\u003e\u003ctd\u003eEdible fruit produced by an apple tree\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eBanana.txt\u003c/td\u003e\u003ctd\u003eBotanically a berry\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eCherry.txt\u003c/td\u003e\u003ctd\u003eA fleshy stone fruit\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\nc:\\data\\project\\backup: (current panel)\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003eComment\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e01_Apple.txt\u003c/td\u003e\u003ctd\u003e\u003ci\u003ehas no file comment\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eApple.txt   \u003c/td\u003e\u003ctd\u003e\u003ci\u003ehas no file comment\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n1. Select c:\\data\\project\\backup\\Apple.txt\n2. Start TCSyncComments\n3. It will read the comments from c:\\data\\project\\descript.ion\n4. If it finds a match for Apple.txt, suggest to copy this to c:\\data\\project\\backup\\descript.ion\n5. Press F5 to copy the file comment.\n\nThere are various combinations to try and find or skip a match (see animation below)\n\nColours used in the listview:\n\n- Green: **Exact** match in file name(s) where no file comment is present in the current folder.\n- Grey:  Allow **partially matched** file name(s) using Sift Ngram (\"best guess\") where no file comment is present in the current folder.\n- Blue:  **Exact** match in file name(s) where the same file comment is already present in the current folder, skipped by default.\n\nUse check marks to select which file comment(s) to copy.\n\nResult after copying file comments (Sift Ngram):\n\nc:\\data\\project\\backup: (current folder)\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003eComment\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e01_Apple.txt\u003c/td\u003e\u003ctd\u003e\u003ci\u003ehas no file comment\u003c/i\u003e[1]\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eApple.txt   \u003c/td\u003e\u003ctd\u003e\u003ci\u003eEdible fruit produced by an apple tree\u003c/i\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n[1] Select \"Sift Ngram\" and \"All files\" to also copy the file comment to \"01_Apple.txt\"\n\nAnimation:\n\n![TCSyncComments example animation](https://raw.githubusercontent.com/hi5/_resources/master/tctest1.gif)\n\n## Options\n\nMatch files:\n\n- Exact: file name(s) have to match - (green rows)\n- SIFT Ngram: Allow **partially matched** file name(s) - (grey rows)\n- Skip Identical: (un)hide Identical files from the listview - (blue rows)\n\ndescript.ion:\n\n- Replace comments: replace current file comment if present in current descript.ion\n- Backup (bak): create a backup (.bak) of original descript.ion (if present) before updating it\n- Keep hidden: set Hidden attribute when creating a new descript.ion\n\nFolder:\n\n- Current: Active panel in TC = where file comments are to be copied to\n- Target: Source panel in TC = where file comments from descript.ion to use are read from\n- All files: toggle between processing selected and all files in current or target folder\n\nActions:\n\n- F4 Edit: Edit current comment\n- F8 Del: Remove file from listview\n- Help: Open this readme.md in notepad (or GH if it can't find readme.md)\n- Cancel: Close TCSyncComments\n- F5 Copy Comments: copy selected file comment(s) to (new) descript.ion\n\n## Setup\n\n* Add a button to the TC Button bar\n* Add a Start menu\n* Add a [User-defined command](https://www.ghisler.ch/wiki/index.php/User-defined_command)\n\n```\nCommand    : path-to\\TCSyncComments.ahk \nParameters : %T %P %S\n```\n\nReference: (source TC Help file)\n\n```\n%T inserts the current target path.\n%P causes the source path to be inserted into the command line, including a backslash (\\) at the end.\n%S insert the names of all selected files into the command line.\n   Names containing spaces will be surrounded by double quotes.\n   Please note the maximum command line length of 32767 characters.\n```\n\n# Settings.ini\n\nTCSyncComments stores the windows position and last used settings in Settings.ini \nlocated in TCSyncComments (script) folder.\n\n### INI Icons\n\nTo use different icons add a section to `TCSyncComments.ini`\n\n```ini\n[Settings]\nIconFile=\\WCMICONS.DLL\nDescIcon=29\nFileIcon=63\nFolderIcon=36\n```\n\nNotes:\n\n* The IconFile path is set to `Commander_Path + IconFile`, so make it relative to the Total Commander program folder.\n* DescIcon used for \"descript.ion\" (icon number in DLL)\n* FileIcon used for \"Match files\" (icon number in DLL)\n* FolderIcon used for \"Folder\" (icon number in DLL)\n\n### Credits\n\n* LV_Colors by just me - Source: https://github.com/AHK-just-me/Class_LV_Colors\n* Sift (Ngram) by Fanatic Guru - Source: https://www.autohotkey.com/boards/viewtopic.php?t=7302\n* AutoXYWH by toralf/tmplinshi - Source: http://ahkscript.org/boards/viewtopic.php?t=1079\n\n### TC forum (ghisler.ch)\n\n* [TCSyncComments thread](https://www.ghisler.ch/board/viewtopic.php?f=6\u0026t=73131) - TC Plugins and addons: devel.+support (English)\n* [Manual option to copy file comment descript.ion F5/F6, Shift+F5](https://ghisler.ch/board/viewtopic.php?f=14\u0026t=72059) - TC Suggestions \n\n### License\n\nSee [The MIT License (MIT)](license.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhi5%2Ftcsynccomments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhi5%2Ftcsynccomments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhi5%2Ftcsynccomments/lists"}