From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frantisek Hanzlik Subject: Re: dos batch string manipulation Date: Tue, 18 Oct 2011 03:38:31 +0200 Message-ID: <4E9CD897.1030505@hanzlici.cz> References: Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-msdos-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" To: Alin Rus Cc: linux-msdos@vger.kernel.org Alin Rus wrote: > Hello, > > I'm trying to write some dos batch script for manipulating some paths. > I haven't done this in years so I might be rusty. > > The path is relative and given from the command line as argument > > @echo off > set wpath=%1 > @echo.%wpath% > set newpath=%wpath:~0,-4% > @echo.%newpath% > > The thing I'm trying to accomplish is to get rid of the extension > > script.bat whatever/test.txt > whatever/test.txt > whatever/test > > But I'm getting > > script.bat whatever/test.txt > whatever/test.txt > > > > I'm using dosemu-1.4.0.1 and this [1] as a reference. > > > [1] http://www.dostips.com/DtTipsStringManipulation.php > > > Regards, Hello Alin, it seems as scripts at referenced www.dostips.com are for cmd.exe shell in win xp and newer. Thus examples there mentioned will not work at win 95/98/me and of course at neither version of MS DOS up to last 6.22. I think You may solve this string manipulation task 1) with some external programs, which are able do string manipulation - You can find them e.g. on Simtel.net. 2) maybe some command.com shell replacement is able do it too. 3) other way may be use awk for DOS for creating some.bat file in form: set newpath=SomeAWKcreatedString and then call it for setting newpath: call some.bat Best, Franta