Web lists-archives.com

Re: cmd.exe and file name conversion from comman line argument




Greetings, h_ono@xxxxxxxxxxxxxxxx!

> Hello,

> There is strange behavior when naming a file from command line argument in 
> cmd.exe cosole,
> using touch or mv.

No, your comparison is not fair.

> I use:
> touch (GNU coreutils) 8.26
> Packaged by Cygwin (8.26-2)

You're using "env" to begin with, which alters processing of parameters.
But I can't reproduce your case. The result is definitely does not contain the quotes.

chcp 65001
set LANG=ru_RU.UTF-8
env LANG=ja_JP.UTF-8 touch 'あああ'

It creates exactly the name I'd expect, even though I can't see it in console.
But Explorer don't lie and shows it proper.

> cygwin1.dll version 2.10.0

> in cmd.exe, doing

>> touch aaa
> and
>> touch 'aaa'

> give same file name aaa.

>> ls
>  aaa

> but, when I use Japanese characters as file name, it gives different file 
> names
> with and without the quote.

>> env LANG=ja_JP.UTF-8 touch あああ

> gives

>> env LANG=ja_JP.UTF-8 ls
>   あああ

> but,

>> env LANG=ja_JP.UTF-8 touch 'あああ'

> gives file name with quote not stripped.

>> env LANG=ja_JP.UTF-8 ls
>   'あああ'

> If called from mintty + bash,

> $ env LANG=ja_JP.UTF-8 touch 'あああ'

> gives

> $ env LANG=ja_JP.UTF-8 ls
>   あああ

> The problem is when I create a file containing spaces in its name.
> Creating a file in cmd.exe like:

>> env LANG=ja_JP.UTF-8 touch 'ああ あ'

> gives

>> env LANG=ja_JP.UTF-8 ls
> "'ああ あ'"

> (which is a file named 'ああ あ', not ああ あ)
> It seems, there is no way to create a file containing a space in its name, 
> like
>  ああ あ
> with commands such as touch or mv.

> Is it a normal behavior, or a bug?
> Is there any way to create a file containing Japanese characters and 
> spaces in its name
> without quote added?

> FYI, With old cygwin (cygwin1.dll version 1.5.25), there were not such 
> problem.
> Even from cmd.exe,

>> touch 'ああ あ'

> gave a file named 'ああ あ' (without the quote in real.)


-- 
With best regards,
Andrey Repin
Friday, July 27, 2018 7:50:49

Sorry for my terrible english...