C# 从c向批处理文件发送具有空格的路径#

C# 从c向批处理文件发送具有空格的路径#,c#,windows,visual-studio,batch-file,C#,Windows,Visual Studio,Batch File,我有一个从应用程序中执行批处理文件的应用程序。批处理文件包含以下内容: attrib %1 +h +r +s /s /d pause 我在c#应用程序中的代码是 Process p = new Process(); string m=@"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject"; p.StartInfo.FileName = @"C:\Users\INDERJEET\Desktop\

我有一个从应用程序中执行批处理文件的应用程序。批处理文件包含以下内容:

attrib %1 +h +r +s /s /d
pause
我在c#应用程序中的代码是

Process p = new Process();
string m=@"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

尝试在路径周围使用双引号(
)。由于使用的是字符串文字,因此需要使用第二个双引号来转义双引号(如下面的
):

上述代码的结果应将以下参数传递到批处理文件中:

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

您需要在路径-
字符串m=@“C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject”周围使用双引号(
即使我在.bat文件中放了一个暂停语句。它只出现了一秒钟就消失了。当我在路径周围加上双引号时会发生这种情况。@Tim还有其他方法发送路径吗??或者是一个可以解决问题的修正。因为双引号方法不起作用。我尝试了p.StartInfo.Arguments=m.Replace(“,%”)。由于%不在同一路径位置,因此无法工作。如何检查它发送到批处理文件的内容?因为批处理文件在运行时会立即关闭runs@InderjeetSingh它发送的正是您要发送的内容。这里面没有魔法。@indrejeethingh-如果你想看看发送的是什么,就回应一下。@ondrej Janacek。它没有执行命令,因为文件没有被隐藏。否则我为什么要问这个问题。@Tim谢谢你的帮助。:)
"C:\Users\INDERJEET\Desktop\Antivirus works\Antivirus\Batchfiles\Testproject"