Fix Windows upgrade command to preserve command-line arguments during elevation #605
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Windows,
vfox upgradere-launches with admin privileges but only passed"upgrade"to the elevated process, discarding flags like--debug. Additionally,ShellExecuteWfailures were silent.Changes
Argument forwarding: Pass all
os.Args[1:]to elevated process instead of just command nameWindows command-line escaping: Implement proper argument escaping per Microsoft rules:
Error handling: Check
ShellExecuteWreturn value (must be > 32)Implementation
The
escapeArg()function handles edge cases likepath with space\\→"path with space\\\\"and--flag="value"→"--flag=\"value\"".Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.