A seguinte string funciona na linha de comando e eu quero envolvê-la em aspas externas para usá-la como uma string em um aplicativo Python, mas não consigo descobrir como escapar dela. Alguém pode ajudar, ou há algum aplicativo ou site que faça isso para mim?
powershell -Command "&cmd.exe -ArgumentList '/c \"\"c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe\" d:\xx\Code\VisualStudio\my_project\my_project.sln /Target:Rebuild /p:Configuration=Debug /p:Platform=x64 /p:BuildInParallel=false\"'"
Coloque o comando em um arquivo de texto. Usando Python, abra o arquivo e leia seu conteúdo em uma string,
.strip()
fora das quebras de linha finais, então userepr()
para obter uma representação Python-ificada que seja adequada para uso em código-fonte Python.repr() não faz isso para todos os tipos (não para a maioria das classes de terceiros), mas funciona para strings/dicionários/listas.
[OP, tomando a liberdade de editar a resposta para incluir código, no caso improvável de ajudar alguém no futuro]
Então, agora, em vez de
subprecess.run('MSBuild.bat')
, posso usarsubprecess.run(<valeu of escaped_command>)