Portable Cygwin: replacing drivename in a text file

Lee ler762@gmail.com
Wed Nov 24 20:28:00 GMT 2010

On 11/24/10, Fergus   wrote:
> Running Cygwin off a portable USB stick.
> Different host machines typically allocate a different drivename to the
> stick.
> Previous use, say it was J:. A not-quite-portable application needed a
> settings.ini file built with many occurrences of the string
> j:\usr\local\bin. The file was built and saved.
> Current use: now it's K:.
> I could re-configure settings.ini with
> sed -i 's/j:/k:/g' settings.ini
> but in general I don't know (and don't want to bother with) what the
> drivename labels were, or are. Something like
> sed -i 's/.:\\/ replacementstring /g' settings.ini
> will in fact be sufficiently strong to make the change olddriveletter:
> to newdriveletter: where, and only where, I need it, but experiment as I
> might with
> replacementstring = cygpath -w
> replacementstring = `cygpath -w`
> and other variations, I can't get the syntax quite right.
> Can anybody help, please? Thank you very much.

I put a .bat file on each machine to run the portable app that looked like

subst X: K:\

  .. invoke app ..

subst X: /d

Adjust the "subst X: [local drive letter]:\" to each machine and no
more drive letter issues :)

But then I started wanting to carry around my own data as well as
portable apps on the USB stick & went with whole drive encryption with
truecrypt.  The .bat file on each machine changed to

@rem  mountvol to find out the volume name
c:\TrueCrypt\TrueCrypt.exe /q /v \\?\Volume{..output from mountvol..}\ /l X

  .. invoke app ..

c:\TrueCrypt\TrueCrypt.exe /q /dX


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

More information about the Cygwin mailing list