【发布时间】:2017-09-11 09:12:32
【问题描述】:
我正在使用 VB 运行 .bat 文件并将参数传递给它。 现在我设法运行它并将参数发送给它,但遇到了问题。我的论点内部可能包含空格。我试图使用引号,但它似乎没有像我预期的那样工作。所以我在做什么:
- 运行此代码:
System.Diagnostics.Process.Start("C:\Users\XXXXXXX\Desktop\New.bat", """"+data+"""")其中“数据”是我发送的参数。对于测试,它包含以下值:
嘿嘿
在 .bat 文件中,我有一个代码,可以打开记事本并在其中写入参数。使用此代码,我设法将参数作为一个带空格的参数传递,但结果是:
“你好”
任何想法如何摆脱每一边的引号,同时仍然将参数作为一个带空格的参数传递? 我无法逃脱它们或用另一个符号替换。此解决方案需要将参数作为一个内部带有空格的参数传递。这可能吗?我正在使用的程序并不重要。
编辑
这是.bat文件的内容:
set directory_Rexe="C:\Users\XXXXXXX\Desktop\testBat.txt"
set var=%1
echo %var%>%directory_Rexe%
%directory_Rexe%
【问题讨论】:
-
向我们展示批处理文件的内容。另外,如何从命令窗口运行批处理文件并成功写入包含空格的文本?
-
我用 .bat 文件的内容更新了这个问题,但是如果变量的捕获不是问题,那就是相关的。我正在使用一个执行 VB 代码的程序。我没有使用命令窗口来运行 .bat 文件。
-
好吧,首先,你的批处理文件已经坏了;第一行应为
set directory_Rexe="C:\Users\XXXXXXX\Desktop\testBat.txt"。 -
@Joey 感谢您的更正,您是对的,但这不是问题所在。它正在正确设置目录并写入文件。进行了更改,仍然无法摆脱引号。
标签: vb.net batch-file arguments