{"id":108,"date":"2021-11-07T10:44:03","date_gmt":"2021-11-07T15:44:03","guid":{"rendered":"https:\/\/synetech.ddns.net\/blogs\/synetech\/?p=108"},"modified":"2023-01-14T00:15:13","modified_gmt":"2023-01-14T05:15:13","slug":"notouchedit","status":"publish","type":"post","link":"https:\/\/synetech.ddns.net\/blogs\/synetech\/notouchedit\/","title":{"rendered":"NoTouchEdit"},"content":{"rendered":"<p><a href=\"\/synetech\/NoTouchEdit.zip\">NoTouchEdit<\/a> edits a file without updating its timestamp.<\/p>\n<pre>\r\n  > NoTouchEdit   FILE [\/COPY] [\/EDITOR:PROGRAM] [\/MIN|\/MAX|\/HIDE]\r\n\r\n    FILE is the file to modify\r\n\r\n    \/COPY makes a copy of the file before editing, then copies the timestamp\r\nfrom the copy to the modified file. Without this switch, the timestamp is\r\nkept in a variable in memory instead, which requires less disk space and\r\ndoesn't add wear to the drive, but if the computer crashes in the moment\r\nbetween the file being saved and its timestamp being restored, it'll be lost\r\n\r\n    \/EDITOR specfies the program with which to open the file\r\n      The editor doesn't have to be an interactive program\r\n\r\n    \/MIN  run the editor minimized\r\n    \/MAX  run the editor maximized\r\n    \/HIDE run the editor hidden\r\n      Window control might not work with every editor\r\n\r\n  e.g.: > NoTouchEdit r:\\test.png \/hide \/editor:crop\r\n\r\n        Crops the image \"r:\\test.png\" using a hidden window\r\n\r\n  e.g.: > NoTouchEdit x:\\foobar.blah \/copy \/editor:c:\\tools\\baz.exe\r\n\r\n        Makes an empty dummy file \"x:\\foobar.blah.ntebak\" and sets its\r\n        timestamp, opens \"x:\\foobar.blah\" in\/with \"c:\\tools\\baz.exe\" and\r\n        waits until it exits, restores the timestamp for \"x:\\foobar.blah\"\r\n        and deletes the backup \"x:\\foobar.blah.ntebak\"\r\n<\/pre>\n<p>Changelog:<br \/>\n<a href=\"javascript:void(null);\" onclick=\"s_toggleDisplay(document.getElementById('SID309235261'), this, 'Show &#9660;', 'Hide &#9650;');\">Show &#9660;<\/a><\/p>\n<div id='SID309235261' style='display:none;'>\n<ul>\n<li>2021-05-09:\n<ul>\n<li>\n\t\t\t\tVersion 1:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tProject conceive\n\t\t\t\t\t\t<\/li>\n<li>\n\t\t\t\t\t\t\tFirst release\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<li>\n\t\t\t\tVersion 2:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tAdded <tt>\/EDITOR<\/tt> switch\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<li>\n\t\t\t\tVersion 3:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tAdded tray icon and tooltip information\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>2021-08-11:\n<ul>\n<li>\n\t\t\t\tVersion 4:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tRefactored for better argument parsing\n\t\t\t\t\t\t<\/li>\n<li>\n\t\t\t\t\t\t\tRefactored for better argument handling\n\t\t\t\t\t\t<\/li>\n<li>\n\t\t\t\t\t\t\tChanged usage dialog to monospace\n\t\t\t\t\t\t<\/li>\n<li>\n\t\t\t\t\t\t\tAdded window-control\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>2021-11-27:\n<ul>\n<li>\n\t\t\t\tVersion 5:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tUpdated to allow multiple-instances\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>2023-01-13:\n<ul>\n<li>\n\t\t\t\tVersion 6:<\/p>\n<ul>\n<li>\n\t\t\t\t\t\t\tUse empty file for timestamp backup to reduce disk writes and save space\n\t\t\t\t\t\t<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>NoTouchEdit edits a file without updating its timestamp. > NoTouchEdit FILE [\/COPY] [\/EDITOR:PROGRAM] [\/MIN|\/MAX|\/HIDE] FILE is the file to modify \/COPY makes a copy of the file before editing, then copies the timestamp from the copy to the modified file. Without this switch, the timestamp is kept in a variable in memory instead, which requires [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-108","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/posts\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":0,"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/posts\/108\/revisions"}],"wp:attachment":[{"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/media?parent=108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/categories?post=108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/synetech.ddns.net\/blogs\/synetech\/wp-json\/wp\/v2\/tags?post=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}