Another question brought up an interesting problem:
On Windows, the Java File.pathSeparatorChar
is ;
, which is correct. However, the semicolon is actually also a valid character to folder or file names. You can create a folder named Test;Test1
on Windows.
The question is: How would you determine whether the semicolon in a path list actually separates a path or is part of the directory name, if the path list can contain both absolute and relative paths?
If the path contains a ;
itself the path must be surrounded by double quotes "
.
following small PoC
mkdir "foo;bar"
echo echo execute %%~dpnx0 > "foo;bar\dummy.cmd"
set PATH=%PATH%;"foo;bar"
dummy.cmd
the output will be
execute R:\temp\foo;bar\dummy.cmd
means the dummy.cmd
is found by the path setup.
edit As to see from the comments: Using a semiclon could lead you into some trouble. It's better to avoid using directory names containing a semicolon.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With