首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批处理文件中字符串转义中的空格

批处理文件中字符串转义中的空格
EN

Stack Overflow用户
提问于 2021-01-26 14:14:54
回答 1查看 95关注 0票数 0

由于字符转义序列问题,我无法运行批处理命令。

从python输入的

代码语言:javascript
运行
复制
import subprocess
print(data) ==> --i "test - testing"
subprocess.call(["c:/foo/boo/file.bat", data])

批处理文件:

代码语言:javascript
运行
复制
SET @tt=%1

输出:-

代码语言:javascript
运行
复制
C:\foo\boo>SET @tt=" --i \"test

预期:-

代码语言:javascript
运行
复制
C:\foo\boo>SET @tt=--i "test - testing"

是否有一种方法可以转义空白以在批处理文件中传递实际输入?请给我建议。

EN

Stack Overflow用户

发布于 2021-01-26 14:28:06

命令的正确引用和转义可能是很棘手的。Python在一个模块中有一个函数来帮助简化:shlex.split:❝使用类似shell的语法拆分字符串。❞

文档:shlex.split

我没有办法测试你的代码。以下是我认为你正在努力实现的目标的一个例子。

代码语言:javascript
运行
复制
import shlex
import subprocess

command = 'c:/foo/boo/file.bat --i "test - testing"'

split_command = shlex.split(command)
print(split_command) # shlex.split handles all the proper escaping
subprocess.call(split_command)

打印输出:['c:/foo/boo/file.bat', '--i', 'test - testing']

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65902994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档