# project: Fix cmd task quoting with venv activation \(\#55531\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/dbbc25fc44eec2505c7216a43c8cea43d1a01e80)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: dbbc25fc44eec2505c7216a43c8cea43d1a01e80

Requested commit: dbbc25fc44eec2505c7216a43c8cea43d1a01e80

Commit: dbbc25fc44eec2505c7216a43c8cea43d1a01e80

Tree: 58462896e614e1078b7e8324ed2453c5e2f7db82

Author: sunwukk990

Committer: GitHub

## Message

```
project: Fix cmd task quoting with venv activation (#55531)

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #55022

## Summary

When a task explicitly uses `cmd.exe`, Zed prepares it as a shell
invocation like `cmd.exe /S /C "<command>"`.

If Python virtual environment activation is enabled,
`Project::create_terminal_task` wraps that prepared task in an outer
activation shell so the venv can be activated before the task runs.

Before this change, the activation formatter treated the prepared `/C`
command string as a normal shell argument and quoted it again. On
Windows, that can make cmd receive escaped quotes literally, producing
errors like `'\\"echo Hi there\\"' is not recognized...`.

This preserves the prepared cmd `/C` command string while building the
activation command, and keeps the existing quoting path for ordinary
task arguments.

## Verification

- `cargo test -p project formats_prepared_cmd_task`
- `cargo test -p project formats_non_cmd_task_for_activation`
- `cargo check -p project`
- `cargo fmt --check --package project`
- Manually verified on Windows with a selected Python `.venv` that a
`cmd.exe` task prints `Hi there` and finishes successfully.

Release Notes:

- Fixed Windows `cmd.exe` tasks failing when run with a selected Python
virtual environment.
```

## Parents

- [be705e677bc1dd7fc6715cb4638d186a41130232](https://git.cafe/gitcafe/zed/commit/be705e677bc1dd7fc6715cb4638d186a41130232?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/dbbc25fc44eec2505c7216a43c8cea43d1a01e80?format=markdown)
