Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^4: Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail

by syphilis (Bishop)
on Sep 13, 2020 at 14:54 UTC ( #11121690=note: print w/replies, xml ) Need Help??


in reply to Re^3: Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail
in thread Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail

The windows shell requires double quotes around paths which contain spaces

This doesn't accurately describe Windows behaviour. In the cmd.exe shell (on Windows 7) I can do:
C:\>mkdir "with a space" C:\>cd with a space C:\with a space>
Sure, the first command needed the quotes. Otherwise I create 3 directories - namely "with", "a", and "space".
But the second command does not need any quotation at all.

Contrast this with the bash shell on Debian:
sisyphus-sis@debian-sis:~$ mkdir "with a space" sisyphus-sis@debian-sis:~$ cd with a space -bash: cd: with: No such file or directory sisyphus-sis@debian-sis:~$ cd "with a space" sisyphus-sis@debian-sis:~/with a space$
There's a similarity with Windows - without the quotes in the first command, directories "with", "a" and "space" will again be created.
However, here we see that, unlike the Windows cmd.exe shell, the Debian bash shell also requires quotes for the second (cd) command.

It therefore seems to me that your assertion is more applicable to Debian than to Windows.

Cheers,
Rob

Replies are listed 'Best First'.
Re^5: Filename Surrounded by Quotes in a Scalar Variable Causes Open to Fail
by afoken (Canon) on Sep 14, 2020 at 12:48 UTC
    C:\>cd with a space C:\with a space>

    I think this is a very special case in cmd.exe (and maybe also in command.com): cd/chdir needs exactly one parameter since MS DOS 1.0, so if it is passed more than one, cmd.exe silently combines them into a single parameter.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
      I think this is a very special case in cmd.exe

      Yes, it's true that there are shell commands that do need the quotes (eg copy and move) but set is another command that does not need them.
      Running set PATH=%PATH%;C:\with a space works as intended.

      Anyway, it seems to me that the need for quotes is by no means specific to windows.
      Last night I indicated that cd on Windows doesn't need the quotes, though cd on Linux does.
      Tonight, I've noticed that set on Windows doesn't need the quotes, though export on Linux does.

      It's pretty clearly inaccurate to present the need for double quotes as a Windows thing - though I guess it could be argued that Bill wasn't actually claiming it was windows-specific.

      Cheers,
      Rob.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11121690]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2021-04-10 20:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?