{"id":13548001,"url":"https://github.com/chrdavis/SmartRename","last_synced_at":"2025-04-02T20:31:25.381Z","repository":{"id":35386709,"uuid":"88468455","full_name":"chrdavis/SmartRename","owner":"chrdavis","description":"A Windows Shell Extension for more advanced bulk renaming using search and replace or regular expressions","archived":false,"fork":false,"pushed_at":"2023-01-07T20:08:14.000Z","size":1302,"stargazers_count":646,"open_issues_count":41,"forks_count":46,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-28T23:05:46.142Z","etag":null,"topics":["bulk-rename","filename","regular-expressions","rename","rename-files","shell-extension","windows","windows-explorer","windows-shell"],"latest_commit_sha":null,"homepage":"","language":"C++","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/chrdavis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-17T04:29:05.000Z","updated_at":"2025-03-27T16:04:44.000Z","dependencies_parsed_at":"2023-01-15T19:49:44.892Z","dependency_job_id":null,"html_url":"https://github.com/chrdavis/SmartRename","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrdavis%2FSmartRename","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrdavis%2FSmartRename/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrdavis%2FSmartRename/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrdavis%2FSmartRename/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrdavis","download_url":"https://codeload.github.com/chrdavis/SmartRename/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246888011,"owners_count":20850186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bulk-rename","filename","regular-expressions","rename","rename-files","shell-extension","windows","windows-explorer","windows-shell"],"created_at":"2024-08-01T12:01:04.429Z","updated_at":"2025-04-02T20:31:20.373Z","avatar_url":"https://github.com/chrdavis.png","language":"C++","readme":"# SmartRename\n\nHave you ever needed to modify the file names of a large number of files but didn't want to rename all of the files the same name? Wanted to do a simple search/replace on a sub-string of various file names? Wanted to perform a regular expression rename on multiple items?  \n\nSmartRename is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions.  SmartRename allows simple search and replace or more advanced regular expression matching.  While you type in the search and replace input fields, the preview area will show what the items will be renamed to.  SmartRename then calls into the Windows Explorer file operations engine to perform the rename.  This has the benefit of allowing the rename operation to be undone after SmartRename exits.\n\n### Download\n[Latest 32 and 64 bit versions](https://github.com/chrdavis/SmartRename/releases/latest) \nWindows Vista,7,8,10\n\nYou will likely need to restart windows for the extension to be picked up by Windows Explorer.\n\n### Demo\n\nIn the below example, I am replacing all of the instances of \"Pampalona\" with \"Pamplona\" from all the image filenames in the folder.  Since all the files are uniquely named, this would have taken a long time to complete manually.  With SmartRename this tasks seconds.  Notice that I can undo the rename if I want to from the Windows Explorer context menu.\n\n![Image description](/Images/SmartRenameDemo.gif)\n\n## Input\n\n### Search for\n\nThe text or regular expression to match in the item name\n\n### Replace with\n\nThe text to replace the instance(s) in the item name matched by the Search text\n\n## Options\n\n### Use Regular Expressions\n\nIf checked, the Search field will be interpreted as a regular expression. The Replace field can also contain regex variables (see examples below).  If not checked, the Search field will be used as a text to be replaced with the text in the Replace field.\n\n### Case Sensitive\n\nIf checked, the text specified in the Search field will only match text in the items if the text is the same case.  By default we match case insensitive.\n\n### Match All Occurrences\n\nIf checked, all matches of the text in Search field will be replaced with the Replace text.  Otherwise, only the first instance of the Search for text in the item will be replaced (left to right).\n\n### Exclude Files\n\nFiles will not be included in the operation.\n\n### Exclude Folders\n\nFolders will not be included in the operation.\n\n### Exclude Subfolder Items\n\nItems within folders will not be included in the operation.  By default, all subfolder items are included.\n\n### Enumerate Items\n\nAppends a numeric suffix to file names that were modified in the operation. \nEx: foo.jpg -\u003e foo (1).jpg\n\n### Item Name Only\n\nOnly the file name portion (not the file extension) is modified by the operation.\nEx: txt.txt -\u003e  NewName.txt\n\n### Item Extension Only\n\nOnly the file extension portion (not the file name) is modified by the operation.\nEx: txt.txt -\u003e txt.NewExtension\n\n## Regular Expressions\n\nFor most use cases, a simple search and replace is sufficient.  Other users will need more control over.  That is where Regular Expressions come in.  Regular Expressions define a search pattern for text.  Regular expressions can be used to search, edit and manipulate text. The pattern defined by the regular expression may match one or several times or not at all for a given string.  SmartRename uses the ECMAScript grammar, which is common amongst modern programming languages.\n\nTo enable regular expressions, check the \"Use Regular Expressions\" checkbox. \n\n**Note:** You will likely want to check \"Match All Occurrences\" while using regular expressions.\n\n### Examples\n\nSimple matching examples:\n\n| Search for     | Description                                           |\n| -------------- | ------------- |\n| .*             | Match all the text in the name                        |\n| ^foo           | Match text that begins with \"foo\"                     |\n| bar$           | Match text that ends with \"bar\"                       |\n| ^foo.\\*bar$     | Match text that begins with \"foo\" and ends with \"bar\" |\n| .+?(?=bar)     | Match everything up to \"bar\"                          |\n| foo[\\s\\S]\\*bar | Match everything between \"foo\" and \"bar\"              |\n\nMatching and variable examples:\n**Note:** For using the variables, you do need \"Match All Occurrences\" enabled\n\n| Search for | Replace With  | Description                                |\n| ---------- | ------------- |--------------------------------------------|\n| (.\\*).png  | foo\\_$1.png   | Prepends \"foo\\_\" to the existing file name |\n| (.\\*).png  | $1\\_foo.png   | Appends \"\\_foo\" to the existing file name  |\n| (.\\*)      | $1.txt        | Appends \".txt\" extension to existing file name |\n| (^\\w+\\.$)\\|(^\\w+$) | $2.txt | Appends \".txt\" extension to existing file name only if it does not have an extension |\n\n### External Help\n\nThere are great examples/cheat sheets available online to help you\n\n[Regex tutorial — A quick cheatsheet by examples](https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285)\n\n[ECMAScript Regular Expressions Tutorial](https://o7planning.org/en/12219/ecmascript-regular-expressions-tutorial)\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrdavis%2FSmartRename","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrdavis%2FSmartRename","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrdavis%2FSmartRename/lists"}