使用空格向批处理文件发送参数。 VB

时间:2017-09-11 09:12:32

标签: vb.net batch-file arguments

我使用VB运行.bat文件并将参数传递给它。 现在我设法运行它并将参数发送给它,但遇到了问题。我的参数可能包含空格。我试图使用引号,但它似乎没有像我预期的那样工作。所以我在做什么:

  1. 运行此代码:System.Diagnostics.Process.Start("C:\Users\XXXXXXX\Desktop\New.bat", """"+data+"""") 在哪里'数据'是我发送的论据。对于测试,它包含值:
  2.   

    Hel loo

    在.bat文件中我有一个代码,打开记事本并在其中写入参数。使用这段代码,我设法将参数传递为带空格的参数,但结果是:

      

    " Hel loo"

    任何想法如何摆脱每一方的引号,同时仍然将参数作为一个空格传递? 我无法摆脱它们或用另一个符号代替。此解决方案需要将参数作为一个包含空格的参数传递。这可能吗?我正在合作的计划并不重要。

    修改

    这是.bat文件的内容:

    set directory_Rexe="C:\Users\XXXXXXX\Desktop\testBat.txt"
    
    set var=%1
    
    
    echo %var%>%directory_Rexe%
    
    %directory_Rexe%
    

1 个答案:

答案 0 :(得分:1)

这里有三个选项:

  1. 使用%~1,这将删除引号。
  2. 不关心将所有内容放入参数1并引用和使用%*。你提到不想那样做。
  3. 不要将字符串作为参数传递,而是作为环境变量传递。当你有许多需要转义的字符时,这也有很大的帮助。
  4. 但是,所有选项都要求您更改批处理文件。

    当你拥有一个功能完备的编程语言时,我还会质疑是否需要批处理文件。将文本写入文件实际上应该更容易从VB。