Fail to copy for filename containing square brackets '[ ]'
Copying files with filename containing squarebracket "[ ]" will fail
Example:
- Myfilename[123].txt -> fail, file is corrupted, but no error message
- Myfailname].txt -> success
- Myfailname[.txt -> fail with attached error message
Windows version : Windows 10 Version 22H2 PSVersion : 5.1.19041.5007
Command: Copy-FileHash -Path .\Source\ -Destination .\Destination\ -Recurse -PassThru -Verbose
This is because the -Path parameter interprets square brackets as special characters. Other PowerShell cmdlets that handle paths do the same.
To have the square brackets treated literally, use the -LiteralPath parameter instead of -Path.
Hello,
Thank you for the quick reply.
I replaced the command with -LiteralPath but the issue persisted.
Copy-FileHash -LiteralPath .\Source\ -Destination .\Destination\ -Recurse -PassThru -Verbose
The file Myfilename[123].txt is inside Source folder. Is the command above correct?
I see the problem. The -LiteralPath parameter only applies to the source path, it doesn't use LiteralPath when retrieving the files in the source folder (or on the destination at all as it happens).
I can fix this, but it will need a code change.