2014-11-08 175 views
1

我有一个从应用程序中执行批处理文件的应用程序。批处理文件包含此从c发送包含批处理文件空间的路径#

attrib %1 +h +r +s /s /d 
pause 

我在C#应用程序代码是

Process p = new Process(); 
string [email protected]"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject"; 
p.StartInfo.FileName = @"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\hide_2.bat"; 
p.StartInfo.Arguments = m; 
p.StartInfo.Verb = "runas"; 
p.Start(); 

当过我运行此。它似乎只挑选了C:\ Users \ INDERJEET \ Desktop \ Antivirus之后的路径,而不是之后..如何将整个路径发送到cmd。

+0

您需要用双引号(' “')路径周围 - '串m = @” “” C:\用户\ INDERJEET \桌面\杀毒软件的工作原理\杀毒软件\批处理文件中\ Testproject “”” ;' – Tim 2014-11-08 10:21:48

+0

尽管我在.bat文件中放了一个暂停语句,但它只是出现一秒钟而消失,当我在路径中放置双引号时,会发生这种情况 – 2014-11-08 10:27:51

+0

@蒂姆有没有其他方式发送路径?或者可以解决问题的矫正。因为双引号方法不起作用。我试了p.StartInfo.Arguments = m.Replace('','%'); 。由于%不是相同的路径位置,所以不起作用。 – 2014-11-08 11:23:51

回答

1

尝试在路径周围使用双引号(")。由于您使用的一个字符串,你需要有第二双引号(这样"")转义双引号:

​​

上述代码的结果应该通过以下参数成批处理文件:

"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject" 
+0

我该如何检查它发送给我的批处理文件?因为批处理文件在运行时会立即关闭 – 2014-11-08 10:34:58

+0

@InderjeetSingh它发送的内容正是您要传送的内容。没有魔法。 – 2014-11-08 10:42:51

+0

@InderjeetSingh - 如果您想查看发送的内容,请回复它。 – Tim 2014-11-08 10:43:59

相关问题