python / python/cpython

subprocess.Popen doesn't properly escape < or > for windows batch files

Abierto
#133,545 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

OS-windows stdlib topic-subprocess type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug report

Bug description:

subprocess.Popen doesn't properly escape < or > for windows batch files

example.bat

echo %*

example.py

import subprocess
from pathlib import Path

batch_file = Path().cwd() / 'example.bat'
subprocess.Popen([batch_file, 'arg1', 'arg2<99'])

Error

The system cannot find the file specified

Adding a space causes it to be correctly escaped:

subprocess.Popen([batch_file, 'arg1', 'arg2 <99'])
CPython versions tested on:

3.13

Operating systems tested on:

Windows

Linked PRs
  • gh-134544

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con la llamada reportada a subprocess.Popen en example.py y reprodúcela en Windows con example.bat usando el argumento arg2<99; después compárala con el argumento que contiene un espacio. Comprueba el PR enlazado gh-134544 para conocer el estado actual del trabajo; se considera terminado cuando el caso sin espacios se escapa correctamente y la regresión está cubierta.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.