vscode-powershell icon indicating copy to clipboard operation
vscode-powershell copied to clipboard

Running script with F5 changes directory when script is on a drive that's different from launch.json cwd value and powershell.debugging.createTemporaryIntegratedConsole is enabled

Open thegraffix opened this issue 10 months ago • 2 comments

Prerequisites

  • [x] I have written a descriptive issue title.
  • [x] I have searched all open and closed issues to ensure it has not already been reported.
  • [x] I have read the troubleshooting guide.
  • [x] I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • [x] I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • [x] If this is a security issue, I have read the security issue reporting guidance.

Summary

Scenario:

  • powershell.debugging.createTemporaryIntegratedConsole is enabled
  • settings.json or launch.json contains cwd value of "C:\\"
  • Editor: D:\Scripts\MyScript.ps1

<BR></BR>

Integrated Terminal current directories:


Before running D:\Scripts\MyScript.ps1 with F5:

Drive Current Directory Is $PWD?
C: C:\Users\TestUser\Desktop\ NO
D: D:\ YES

After running D:\Scripts\MyScript.ps1 with F5:

Drive Current Directory Is $PWD?
C: C:\ YES
D: D:\Scripts\ <--- bug (should remain D:\) NO

PowerShell Version

Name                           Value
----                           -----
PSVersion                      7.5.0
PSEdition                      Core
GitCommitId                    7.5.0
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Name             : Visual Studio Code Host
Version          : 2025.0.0
InstanceId       : e0913dbc-6176-4e70-9bd3-1d5b63449f20
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

Visual Studio Code Version

1.96.4
cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba
x64

Extension Version

[email protected]

Steps to Reproduce

  • Enable powershell.debugging.createTemporaryIntegratedConsole
  • Edit/Run a .ps1 script (F5) that's stored on a drive that's different from the cwd value in settings.json or launch.json
  • When script is finished running, inspect the current directory of the drive on which the .ps1 script is stored
    • That drive's current directory will be set to $PSScriptRoot when it shouldn't be changed at all

Expected behavior:

  • The cd for the drive on which the .ps1 script is stored should not be changed

Actual behavior:

  • The cd for the drive on which the .ps1 script is stored gets changed to: $PSScriptRoot

Visuals

No response

Logs

No response

thegraffix avatar Jan 25 '25 01:01 thegraffix

We've found some similar issues:

  • #4082 , similarity score: 83%

If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.

Note: You can give me feedback by 👍 or 👎 this comment.

similar-issues-ai[bot] avatar Jan 25 '25 01:01 similar-issues-ai[bot]

Huh, that's a strange one. Thanks for the bug report, I set this as up for grabs and would be happy to shepherd in a fix.

andyleejordan avatar Feb 25 '25 20:02 andyleejordan