如何在命令提示符中使用带有路径引用的多个命令
How to use multiple commands with path references in command prompt
我是这个论坛的新手,所以如果我问的方式错误或不够具体,请纠正我..
在 VB.NET 中编码时,我试图传递多个命令,以及一个包含对路径的引用的参数:
Dim p As New Process
Dim pi As New ProcessStartInfo
pi.Arguments = " " & "/K """ & "C:\program files\gdal\gdalshell.bat" & """ & " & "cd C:\program files\gdal" & _
" & " + "gdal_translate" + " -of Jpeg -outsize 2000 2000 """ & "D:\box sync\my box (907070)\RIS_RHDHV_Overgang\GDAL\test2.xml" & """ "
pi.FileName = "C:\windows\syswow64\cmd.exe"
p.StartInfo = pi
p.Start()
命令提示符returns:
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
我对此事做了一些研究,发现:
vb.net How to pass a string with spaces to the command line
但这似乎仍然没有解决问题。当我执行以下代码时,它运行没有问题:
Dim p As New Process
Dim pi As New ProcessStartInfo
pi.Arguments = " " & "/K """ & "C:\program files\gdal\gdalshell.bat" & """ & " & "cd C:\program files\gdal" & _
" & " + "gdal_translate"
pi.FileName = "C:\windows\syswow64\cmd.exe"
p.StartInfo = pi
p.Start()
对我来说,问题似乎是由参数中的路径引用引起的。我已经阅读并使用了使用多个命令的不同答案,但没有任何运气。
如果有人能帮助我解决这个问题,那就太好了。
亲切的问候,
斯图尔特
首先,请注意,您不需要在参数的开头添加 space。仅当您在一行中编写整个命令(包括可执行文件)时才完成。
现在,将路径作为参数传递的正确方法是用引号将其括起来。所以应该这样做:
(请注意,我还缩短了一些不必要的连接等)
pi.Arguments = "/K """"C:\program files\gdal\gdalshell.bat"" & cd ""C:\program files\gdal"" & " & _
"gdal_translate -of Jpeg -outsize 2000 2000 ""D:\box sync\my box (907070)\RIS_RHDHV_Overgang\GDAL\test2.xml"""""
编辑:
我发现您还必须将整个文本放在 /K
后的引号中才能正常工作。
我是这个论坛的新手,所以如果我问的方式错误或不够具体,请纠正我.. 在 VB.NET 中编码时,我试图传递多个命令,以及一个包含对路径的引用的参数:
Dim p As New Process
Dim pi As New ProcessStartInfo
pi.Arguments = " " & "/K """ & "C:\program files\gdal\gdalshell.bat" & """ & " & "cd C:\program files\gdal" & _
" & " + "gdal_translate" + " -of Jpeg -outsize 2000 2000 """ & "D:\box sync\my box (907070)\RIS_RHDHV_Overgang\GDAL\test2.xml" & """ "
pi.FileName = "C:\windows\syswow64\cmd.exe"
p.StartInfo = pi
p.Start()
命令提示符returns: 'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
我对此事做了一些研究,发现: vb.net How to pass a string with spaces to the command line
但这似乎仍然没有解决问题。当我执行以下代码时,它运行没有问题:
Dim p As New Process
Dim pi As New ProcessStartInfo
pi.Arguments = " " & "/K """ & "C:\program files\gdal\gdalshell.bat" & """ & " & "cd C:\program files\gdal" & _
" & " + "gdal_translate"
pi.FileName = "C:\windows\syswow64\cmd.exe"
p.StartInfo = pi
p.Start()
对我来说,问题似乎是由参数中的路径引用引起的。我已经阅读并使用了使用多个命令的不同答案,但没有任何运气。
如果有人能帮助我解决这个问题,那就太好了。
亲切的问候,
斯图尔特
首先,请注意,您不需要在参数的开头添加 space。仅当您在一行中编写整个命令(包括可执行文件)时才完成。
现在,将路径作为参数传递的正确方法是用引号将其括起来。所以应该这样做:
(请注意,我还缩短了一些不必要的连接等)
pi.Arguments = "/K """"C:\program files\gdal\gdalshell.bat"" & cd ""C:\program files\gdal"" & " & _
"gdal_translate -of Jpeg -outsize 2000 2000 ""D:\box sync\my box (907070)\RIS_RHDHV_Overgang\GDAL\test2.xml"""""
编辑:
我发现您还必须将整个文本放在 /K
后的引号中才能正常工作。