C#调用cmd执行参数问题

问题描述

先通过调用cmd执行adbinstallxxx.apk的命令,试了下面的方法(arg为"installtemp.apk",输出一直提示找不到temp.apk):ProcessCmdProcess=newProcess();CmdProcess.StartInfo.FileName=sdkPath+@"platform-toolsadb.exe";CmdProcess.StartInfo.Arguments=arg;CmdProcess.StartInfo.CreateNoWindow=true;CmdProcess.StartInfo.UseShellExecute=false;CmdProcess.StartInfo.RedirectStandardInput=true;CmdProcess.StartInfo.RedirectStandardOutput=true;CmdProcess.StartInfo.RedirectStandardError=true;CmdProcess.OutputDataReceived+=CmdProcess_OutputDataReceived;CmdProcess.ErrorDataReceived+=CmdProcess_ErrorDataReceived;CmdProcess.EnableRaisingEvents=true;CmdProcess.Exited+=CmdProcess_Exited;CmdProcess.Start();CmdProcess.BeginOutputReadLine();CmdProcess.BeginErrorReadLine();

但是arg为"devices"时执行adbdevices就可以。然后试了其他方法(当arg="installtemp.apk"时,这个就可以):System.Diagnostics.Processp=newSystem.Diagnostics.Process();p.StartInfo.FileName="cmd.exe";p.StartInfo.UseShellExecute=false;p.StartInfo.RedirectStandardInput=true;p.StartInfo.RedirectStandardOutput=true;p.StartInfo.RedirectStandardError=true;p.StartInfo.CreateNoWindow=true;p.Start();//向cmd窗口发送输入信息p.StandardInput.WriteLine(@"cd");p.StandardInput.WriteLine(@"d:");p.StandardInput.WriteLine(@"cd"+sdkPath+@"platform-tools");p.StandardInput.WriteLine("adb"+arg);p.StandardInput.AutoFlush=true;p.StandardInput.WriteLine("exit");p.WaitForExit();p.Close();

求大神解决办法。

解决方案

解决方案二:
sdkPath的值是多少
解决方案三:
D:programfilesandroidsdk
解决方案四:
这个就和用c#写程序调用csc命令执行编译某源文件一样的。实现起来,上面两种代码确结果不一样
解决方案五:
难道这个没人能解?
解决方案六:
确保在cmd中执行时没有错误,使用绝对路径试试
解决方案七:
你这是调用外部命令那么不要怕麻烦,命令和涉及的数据文件都要使用绝对路径(使用相对路径也不是完全不可以,但容易出错)输出文件所在目录应有做够的权限如果路径中含有空格,应用双引号将路径括起
解决方案八:
这个和C#无关,是系统当前工作目录的问题,你如果需要使用相对目录打开某个文件时,必须要确认当前工作目录是正确的。你第一个例子中的当前工作目录是在当前程序的执行目录,很明显你的APK文件不在这个目录,所以无法正确执行。而你第二个例子使用了CD和盘符命令将当前工作目录切换到了APK文件所在的目录,所以命令成功被执行。你有两种解决方案,第一是使用APK的绝对路径,这样不管当前工作目录在哪里,命令都能被正确的执行。第二是在执行命令前用类似你第二个例子的方法切换当前工作目录。

时间: 2024-10-09 04:47:18

C#调用cmd执行参数问题的相关文章

java 调用cmd 执行读取sql文件问题?求大神帮看下

问题描述 java 调用cmd 执行读取sql文件问题?求大神帮看下 Runtime run =Runtime.getRuntime(); Process process = run.exec("cmd /cmysql -u root -pssdlh test <d:/test.sql"); InputStreamReader ir = new InputStreamReader(process .getInputStream()); LineNumberReader input

项目发布打包-C#winform项目制作安装包想把mysql数据库一起附加进去,调用cmd执行脚本无效,求助

问题描述 C#winform项目制作安装包想把mysql数据库一起附加进去,调用cmd执行脚本无效,求助 string dbname = this.Context.Parameters["dbname"];//数据库名称 string server = this.Context.Parameters["server"];//服务器名称 string uid = this.Context.Parameters["user"];//SQlServer

c#关闭系统进程以及如何调用cmd并执行命令

今天翻到了以前很早很早之前写过的用来学习C#的一个小程序,里面有关闭进程的一个小例子,使用了两种方法,一种是调用cmd执行强制关闭命令,另一种是通过C#提供的方法进行关闭 先说第一种 string ProcessName="explorer";//这里换成你需要删除的进程名称 Process[] MyProcess1=Process.GetProcessesByName(ProcessName); Process MyProcess=new Process(); //设定程序名 MyP

Windows系统中Java调用cmd命令及执行exe程序的方法_java

Java调用cmd命令,并输出显示信息: package com.anxin.cmd.test; import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("cmd /c di

权限管理 c#-关于WinServer2003+iis6.0+asp.net调用cmd权限问题

问题描述 关于WinServer2003+iis6.0+asp.net调用cmd权限问题 目前正在做一个c++编程题评分系统,其中要实现对源代码的编译并比较结果的功能.这里我是通过Process类来调用cmd执行cl命令来编译,在VS2010中测试结果没问题,但放在iis上发布后就不能调用cmd. 网上找了很多资料,说是权限问题,但试过各种方法都不行,如:应用程序池中给本地系统的权限.将aspnet账户加入到Administrator用户组.给cmd.exe设置everyone的权限.将cmd放

请教Runtime.getRuntime().exec调用cmd时命令中有特殊字符的问题

问题描述 先看段代码Processp=Runtime.getRuntime().exec("cmd.exe/cwmic/node:127.0.0.1/user:administrator/password:123@&123cpuget");BufferdeReaderb=newBufferedReader(newInputStreamReader(process.getInputStream()));这段代码是java调用cmd执行wmic的命令获取远程目标的信息,该命令直接在

C# 调用cmd命令

/***************************************************************** * C# 调用cmd命令 * 说明: * 本文记录一下C#怎么调用cmd命令. * * 2016-7-3 深圳 南山平山村 曾剑锋 ****************************************************************/ 一.参考文章: C#程序调用cmd执行命令 http://www.cnblogs.com/babyco

webservice调用cmd.exe,执行命令调用工具tools.exe,调试可以运行,发布到iis后无法执行

问题描述 各位大小虾,问题如下:在webservice中调用cmd.exe,执行一段命令来调用一个工具(tools.exe参数1参数2)调试时成功执行,并且可以弹出工具界面,但是发布到IIS7.5后就执行不了了,tools.exe进程在任务管理器有,但是没有执行内容.麻烦各位大小虾帮忙把把脉,是啥问题呢?多谢了 解决方案 解决方案二:webservice是运行在服务器的,你弹个界面出来给谁看啊,谁也看不到的,解决方案三:你发布到服务端后,服务端也是按你希望的执行了,只不过是在服务器上--解决方案

c#-C#编写的程序调用CMD,在我的电脑不能执行,在别人的电脑上就可以执行

问题描述 C#编写的程序调用CMD,在我的电脑不能执行,在别人的电脑上就可以执行 private void Form1_Load(object sender, EventArgs e) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "cmd.exe"; startInfo.Arguments = "C:WindowsSystem32cmd.exe"; start