Hey everyone,
I'm dealing with a frustrating issue at work where some files won't open because they exceed the Win32 character limit of 260 characters. I believe it's possible to create a .bat file that would improve the workflow: my idea is to right-click any file, choose 'copy as path', and then double-click the .bat file to open it directly.
I've experimented with scripts, mainly using PowerShell to grab the clipboard content and open it, but I keep hitting a wall. While PowerShell can manage long file paths, it seems the external applications don't handle them well once invoked. I thought about mounting the directories as a lettered drive to reduce the character count down to just the file name and a few extra characters, but I just can't seem to get it to work. If anyone has experience with batch files and can offer guidance, that would be fantastic!
5 Answers
Are you using OneDrive or SharePoint by any chance? Those can sometimes complicate things when it comes to path lengths.
Absolutely, Windows supports long paths up to 32,767 characters, but applications need to be designed for it. Make sure the program you’re using has the manifest property `true`. Alternatively, you can format the path in your .bat file to use the special path syntax such as `\?C:very_long_path`. But if the program itself restricts the path to 260 characters, that might not be fixable.
First, you should check if long paths are enabled in the Windows registry since that’s crucial. Then, which specific program is giving you issues? If it’s possible, updating it to a long-path aware version would be ideal. If that’s not an option, you might consider using a directory junction or a hard link to create a shorter alias for your longer folder path.
Why not retrieve the file's short path using the built-in command, and pass that to your application? That way, you wouldn't even have to mount anything, simplifying your process significantly.
Have you tried using the subst command? It can assign a path to a drive letter, which simplifies things. For instance, you'd do something like `subst e: C:averylongpathnearly260characterslong` and then just access it via `E:`, which should help you bypass the 260 character limit! To remove the drive assignment later, use `subst e: /D`. Just a heads up that it’s `subst e: /D`, not `/delete` to remove it!
This approach is so clever, I’ll definitely try this out!

Thanks for clarifying that! The correct command is definitely important.