From: Hans S. <Han...@we...> - 2013-11-27 14:00:40
|
I just installed the current MSYS+MinGW base packages via installation manager (newest contained package 2013-10-05) and observed that e.g. ls.exe can't handle DOS path delimiters if used in normal cmd shell. E.g. this does not work: d>msys\1.0\bin\ls.exe C:\UTIL\*.vbs msys/1.0/bin/ls: C:\UTIL\*.vbs: No such file or directory But with '/' it's OK: d>msys\1.0\bin\ls.exe C:/UTIL/*.vbs C:/UTIL/AIDA_Switcher.vbs C:/UTIL/DateTimeInfo.vbs C:/UTIL/RunWithFileUrl.vbs C:/UTIL/cygwin.vbs Other tools, e.g. "less", work fine with '\', e.g. d>msys\1.0\bin\less.exe C:\UTIL\cygwin.vbs Since MSYS is intended to be used directly in Windows, I think all tools must support DOS path delimiters (and drive letters) (except if used from e.g. "MSYS Shell", where it's acceptable if no DOS path would be supported). Is this a already known bug? - Regards, Hans. |
From: Eli Z. <el...@gn...> - 2013-11-27 16:19:29
|
> Date: Wed, 27 Nov 2013 15:00:31 +0100 > From: Hans Schmidts <Han...@we...> > > Since MSYS is intended to be used directly in Windows, I think all tools > must support DOS path delimiters (and drive letters) (except if used > from e.g. "MSYS Shell", where it's acceptable if no DOS path would be > supported). Is this a already known bug? Actually, I don't think MSYS "is intended to be used directly in Windows", if by that you mean use it with Windows style file names. For that, you need a native Windows port of ls.exe. The file names supported by MSYS use forward slashes. |
From: Keith M. <kei...@us...> - 2013-11-27 20:14:39
|
On 27/11/13 16:18, Eli Zaretskii wrote: >> Date: Wed, 27 Nov 2013 15:00:31 +0100 From: Hans Schmidts >> >> Since MSYS is intended to be used directly in Windows, I think all >> tools must support DOS path delimiters (and drive letters) (except >> if used from e.g. "MSYS Shell", where it's acceptable if no DOS >> path would be supported). Is this a already known bug? This is PEBKAC, not a bug. > Actually, I don't think MSYS "is intended to be used directly in > Windows", Eli is correct: the official line is that MSYS binaries are *NOT* intended the be used directly in Windows, (if by that, the OP means called from cmd.exe, or directly from any native -- i.e. non-MSYS -- application). That said, it is possible that you may sometimes get an MSYS application to work in this way, but such usage is not supported; if it does not work as you hoped, you are on your own. > if by that you mean use it with Windows style file names. For that, > you need a native Windows port of ls.exe. > > The file names supported by MSYS use forward slashes. Yes. In the OP's original example: > d>msys\1.0\bin\ls.exe C:\UTIL\*.vbs > msys/1.0/bin/ls: C:\UTIL\*.vbs: No such file or directory the \ will be treated as an escape character, *NOT* as a directory name separator; \U == U and \* == *, (literally, exempt from globbing -- not that any MSYS application, other than the shell, would glob it anyway). If you must use \ as a directory name separator, in an argument to any MSYS application, then you must escape it: d>msys\1.0\bin\ls.exe C:\\UTIL\\*.vbs may work, (but such usage from cmd.exe remains unsupported). -- Regards, Keith. |