DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 5029ZM6v3908569 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 5029ZM6v3908569 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=pzXAAnQw X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6EB7A3857810 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1735810519; bh=c/doLcipuBgcZpAwmdAZOKypcQSLV/NtibEm846Olm4=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=pzXAAnQwpQGgvaYCTVjCQw6TcXwOUkLU0lBJp1b+0T9B4qRvS8tCRUrMnk3aV1bSf UaML2txv730ljltJqqWeBNbFKYhm812QVBgnH8KJBbfQLnYw2//0+eC8Q/uZa1rGh2 w3dDRNjE/52aap1K9Kt4OeQo/aMNWcSKfSC9Tb4s= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E7C56385780F ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E7C56385780F ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1735810451; cv=none; b=d7aMxzwsws2ptzIAEmt8XvbqLghCUqCWQk+nJMWMhCwTNSU+E2+YLchv6cFYvjPvtJ7W2TPyZ8x749HUzCnraCzMKzlA/cPYi9vqMdbhIq9n9pJoz8CUetNQbdfvX3JC1vjjRw1sPYbu10OZlgpim2zKtQvn2DsOu9wIeY6y16w= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1735810451; c=relaxed/simple; bh=hBUHBwboBmZoezXxwbyeEeFnlmZioa+MMQKze5+EnnM=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=ij4JMgcg1vd6XdwcpzrKGnXGQNK5PMLxBA7Dvp6LSzG5ZaYt0xiTNRyxOBTbtcxTWm/N9433awKJowkHaIfPYsY6iA+PCqIVeOsDG4IrC1UhsSZIl1+B0KPziTHrITAmBN2DlrhFLl50R1Zldq7fHC4BbZxEzjTQlS2K/dH7fJc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E7C56385780F Message-ID: <8ec51c94-fdb0-4fb1-8d89-97e5c513f5ed@kircheis.it> Date: Thu, 2 Jan 2025 10:34:06 +0100 MIME-Version: 1.0 Subject: Re: env and PATH To: cygwin AT cygwin DOT com References: <77a3709d-ec4d-497b-bf6c-75f29dc8c992 AT kircheis DOT it> In-Reply-To: X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Federico Kircheis via Cygwin Reply-To: Federico Kircheis Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 5029ZM6v3908569 On 20/12/2024 23.15, Brian Inglis via Cygwin wrote: > Hi Federico, > > Looks like non-Cygwin program launch is messing up PATH not on the > current drive: > > $ cd /proc/cygdrive/d > $ cat -A /proc/cygdrive/d/tmp/t.cmd > echo %PATH%^M$ > $ env -i PATH='C:\Windows;C:\Windows\system32;' /bin/sh -c 'echo $PATH' > C:\Windows;C:\Windows\system32; > $ env -i PATH='C:\Windows;C:\Windows\system32;' `cygpath $COMSPEC` /s /c \ > "d:\tmp\t.cmd" > D:\>echo C;D:\Windows;C;D:\Windows\system32; > C;D:\Windows;C;D:\Windows\system32; > D:\>exit I did some other testing From cygwin, without using env explicitly > PATH='D:\windows' /c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe > echo $env:PATH D;C:\windows (similar result for cmd) From powershell > $env:PATH="D:\windows" > C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe > echo $env:PATH D:\windows (similar result for cmd) I also tried PATH='D:\windows' /usr/bin/cygstart /c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe hoping it would do the trick, but PATH is still "broken", and powershell starts in a separate window :( > > On 2024-12-20 09:51, Federico Kircheis via Cygwin wrote: >> Hello to everyone, >> >> >> I've noticed that env seems to handle the environment variable PATH in >> a particular way >> >> >> ----- >>  > cd /d; >>  > env -i PATH='C:\Windows;C:\Windows\system32;' /c/Windows/System32/ >> WindowsPowerShell/v1.0/powershell.exe >> # in the powershell instance >> echo $env:PATH >> C;D:\Windows;C;D:\Windows\system32; >> ---- >> >> >>  From this and other examples it seems that env uses for PATH  as >> separator, then preprends the current drive to all paths that begin >> with '\' (thus all of them), and ";" is treated as part of the path >> >> >> I would like to use the PATH as-is in the invoked program, just like >> it is done for other variables, for example >> >> ---- >> cd /d >> env -i OPATH='C:\Windows;C:\Windows\system32;' /c/Windows/System32/ >> WindowsPowerShell/v1.0/powershell.exe >> # in the powershell instance >> echo $env:OPATH >> C:\Windows;C:\Windows\system32; >> ---- >> >> in this case OPATH is forwarded as-is to powershell.exe. >> >> I understand that PATH is special, that for cygwin processes some >> transformation might be necessary. >> >> But is there any way to achieve what I'm trying? >> >> I search if there is maybe a separation option for telling env to use >> PATH as- is, but could not find none. >> >> Best >> >> Federico -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple