X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=0.7 required=5.0	tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_THEBAT,KHOP_THREADED,MIME_BASE64_BLANKS,SPF_SOFTFAIL,TW_RG
X-Spam-Check-By: sourceware.org
Date: Fri, 21 Dec 2012 04:35:32 +0400
From: Andrey Repin <anrdaemon@freemail.ru>
Reply-To: Andrey Repin <cygwin@cygwin.com>
Message-ID: <99995944.20121221043532@mtu-net.ru>
To: Denis Excoffier <cygwin@Denis-Excoffier.org>, cygwin@cygwin.com
Subject: Re: argv @-expansion with pathname containing spaces
In-Reply-To: <DB2D51D9-47EB-4609-A28E-9FF0FA1E5472@Denis-Excoffier.org>
References: <20121219162048.GA4564@qp9482> <CAEhDDbDcoiKng6D2zqb-_xKrMUnt_H8Lj7FNPgXnMfis0R9mpw@mail.gmail.com> <20121220115536.GA300@qp9482> <CA+sc5mmhQiSseK3279nSW-0xwyODzMUYEY13pb_CJpwD6QTmng@mail.gmail.com> <DB2D51D9-47EB-4609-A28E-9FF0FA1E5472@Denis-Excoffier.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id qBL0ootL026526

Greetings, Denis Excoffier!

>> On Thu, Dec 20, 2012 at 6:55 AM, Denis Excoffier wrote:
>>> However i don't see how to
>>> derive the 8.3 form from my original filename, using DOS only.
>> 
>> The /X argument to cmd.exe's dir command will give you the 8.3 name if
>> it exists.  Note that your system can be configured to not produce the
>> 8.3 form.

> I tried 'dir /X %pathname%', or 'dir /X /B %pathname%' (and other combinations),
> i can produce "some" 8.3 strings, bug was unable to produce the replacement
> of the full path (with 8.3 strings replaced everywhere). And setting the
> result in another variable seems another challenge…

> On the other hand, i have discovered something funny to calculate the directory
> where a bat file is installed:

> pushd %0\..
> set dirname=%cd%
> popd

set dirname="%~dp0"

Read through SET /?, there's some marvel to be found.

> This seems to work in all situations (spaces in filenames, bat file called through
> absolute path or relative path, even the simple foo.bat works…). It also removes
> the annoying quotes that are set around %0.

> It's a good trick, did anybody know this?

No need for tricks. The value you're seeking is readily available.


--
WBR,
Andrey Repin (anrdaemon@freemail.ru) 21.12.2012, <04:34>

Sorry for my terrible english...

