This is the mail archive of the
cygwin
mailing list for the Cygwin project.
cmd.exe and file name conversion from comman line argument
- From: h_ono at ot dot olympus dot co dot jp
- To: cygwin at cygwin dot com
- Date: Fri, 27 Jul 2018 09:56:54 +0900
- Subject: cmd.exe and file name conversion from comman line argument
Hello,
There is strange behavior when naming a file from command line argument in
cmd.exe cosole,
using touch or mv.
I use:
touch (GNU coreutils) 8.26
Packaged by Cygwin (8.26-2)
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.)
----------
Hiroo Ono
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple