Tag: 批处理文件

如何在c#中调用批处理文件(.bat)?

如何在c#中调用批处理文件(.bat)?

使用Visual Studiounit testingC#的命令行参数

我应该使用VSunit testing框架来确保所有代码都正常工作。 但是,我很难获得需要命令行参数的测试(因为命令行输入必须在运行时给出……并且unit testing没有真正的“运行时”)。 有没有办法用命令行参数输入运行我的unit testing? 我意识到这不是构建程序的理想方式,但遗憾的是我没有决定测试过程的工作原理。 我已经读过,我可以写一个批处理文件并将其包含在MStest / testcontainer文件夹中。 尽管如此,我必须清除一些冲击,以便这样做。 这些冲击包括: 1)我对批处理文件一无所知 2)我不知道MStest / testcontainer文件夹在哪里,如何访问它,它是如何工作的,甚至不知道如何向它添加文件(因为它似乎是隐藏的或不容易访问)。 3)我不知道我对批处理文件做了什么,即使它是在MStest / testcontainer文件夹中正确写入的。 我的测试甚至应该知道它在哪里,更不用说从中获取输入了? 总结一下:如何让VSunit testing接受命令行参数? 如果我必须使用批处理文件方法,我将非常感谢它向我解释,就像我是5.我道歉,如果我在这个主题上显得有些无助,但我找不到任何明确或有用的解释在这个特定的背景下,这些东西是如何运作的。 万分感谢。

在c#中运行bat文件抛出无法识别的错误

我想通过bat文件在c#程序中添加一些DNS记录,所以我在bat文件中写了这些行: set servername=%1 set siteaddress=%2 “C:\Windows\System32\dnscmd.exe” %servername% /zoneadd %siteaddress% /primary /file %siteaddress%.dns 我在C#中写了这些行: Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.WorkingDirectory = Application.StartupPath; p.StartInfo.FileName = General.DnsBatPath; p.StartInfo.Arguments = string.Format(“{0} {1}”, General.DnsServerName, txtSiteAddress.Text); p.Start(); p.WaitForExit(); 我收到此错误“dnscmd.exe无法识别为内部或外部命令…”但是当我手动运行bat文件(在C#之外)时,一切都还可以。 我改变了我的C#代码来检查发生了什么 Process.Start(@”C:\Windows\System32\dnscmd.exe”); 我仍然得到“无法识别…”错误。但我可以在“C:\ Windows \ System32”中看到dnscmd.exe。 我再次更改了我的C#代码以检查另一件事: Process.Start(@”C:\Windows\System32\cmd.exe”); 之后CMD窗口会被打开??? 任何的想法?

如何从C#执行批处理文件?

(见解决方案) 我不认为这会很难。 我有一个命令文件,d:\ a.cmd,其中包含: copy /bd:\7zS.sfx + d:\config.txt + d:\files.7z d:\setup.exe 但是这些C#行不会执行它: Process.Start(“d:\\a.cmd”); Process.Start(“cmd”, “/cd:\\a.cmd”); 抛出Win32Exception:“%1不是有效的Win32应用程序。” Process.Start打开.pdf文件…为什么不执行命令文件? 如果我在cmd窗口中输入它,这是有效的: cmd /cd:\a.cmd Windows XP,MS Visual Studio 2008。 吉姆,提前谢谢 解决方案我只是轻微尴尬:(有一个名为cmd.exe的文件,在我的应用程序的目录中大小为零。我不知道它是如何到达那里但它现在是吐司,上面的两个C#语句现在都有效。我我找了一本哈利波特的书,这样我就可以从多比那里得到一些自我惩罚的想法……

从C#应用程序批量设置访问变量

我有一个批处理文件setEnv.bat 。 @echo off set input=C:\Program Files\Java\jdk1.8.0_131 SET MY_VAR=%input% 我想从C#应用程序运行这个批处理文件,并希望从c#application访问新设置的MY_VAR值。 C#: System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName= “D:\\Check\\SetJavaHome.bat”; proc.StartInfo.WorkingDirectory = System.Environment.CurrentDirectory; proc.Start(); string myVar = Environment.GetEnvironmentVariable(“MY_VAR”); 有人可以帮助我按预期工作吗? 提前致谢。

为什么C#ProcessStartInfoRedirectStandardOutput会导致xcopy进程失败

这有点痛苦,因为我现在没有代码在我面前,但我会尝试解释。 我有一个简单的C#应用​​程序启动一个Ruby脚本(它做了其他一些事情,所以它生成一个批处理文件并执行它)。 我正在使用C#进程对象,并设置以下redirectstandardoutput = true redirectstandarderror = true UseShellExecute = false CreateNoWindow = true(那里有可靠的向后逻辑!) 然后我创建两个线程并为错误和输出流轮询ReadLine(),等待它们在我调用WaitForExit()之前完成。 现在,无论我做什么,当我重定向输出时,我的Ruby脚本都无法调用系统(“xcopy …”)命令(没有生成错误,它只是不复制)。 它也不会复制我要求复制的其他文件。 如果我将两个流定向到一个线程,其中一个线程只重定向其中一个线程并且只调用ReadToEnd(),就会发生这种情况。 只有将redirectstandardoutput和redirectstandarderror设置为false时,它才能正常工作。 我在这里完全失败了。 我想也许输出流正在填满,但我无法想象为什么如果我正在调用ReadLine(我需要读取行,所以我可以解析每一行,只向最终用户提供相关的)。 我还认为从线程C#进程调用dos命令可能会导致问题。 有谁知道这里可能会发生什么? 我应该说我在VS .net 2005上,我认为它是.Net Framework 2.0。

从C#程序运行C#编译器

我正在尝试构建一个将不同语言转换为C#代码的C#程序。 我有程序正常工作,转换代码并将其写入.cs文件。 我希望自动编译和运行此文件,但是我无法弄清楚如何使用C#执行此操作。 我可以通过运行我编写的批处理文件手动完成,并尝试使用System.Diagnostics.Process类从C#运行此批处理文件。 当它运行时,它在批处理代码本身中给出了一个错误,说没有找到任何命令(通常的“不是可执行文件,批处理文件等”)。 我无法弄清楚为什么它能正常运行,但不能从C#运行时。 这是批处理文件代码:C:\ Program_Files_(x86)\ Microsoft_Visual_Studio 10.0 \ VC \ bin \ amd64 \ vcvars64.bat csc%1.cs暂停 以及调用它的函数: System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = “compiler\\compile.bat”; process.StartInfo.Arguments = ” “+fileName; process.Start(); process.WaitForExit(); process.StartInfo.FileName = fileName + “.exe”; process.Start(); process.WaitForExit(); Console.WriteLine(“done”); 任何帮助将不胜感激。

如何使用c#运行批处理文件作为管理员来安装Windows服务

我创建了一个批处理文件,用于将我的程序安装为Windows服务。 批处理文件的内容: > C:\Project\Test\InstallUtil.exe > “C:\Project\Test\ROServerService\Server\bin\Debug\myservices.exe” 目前,用户需要右键单击批处理文件并“以管理员身份运行”才能成功。 我们如何避免“以管理员身份运行”? 我的意思是我们可以在批处理文件中使用某些命令告诉Windows以管理员身份运行此批处理文件吗?

在C#中编写批处理脚本的好方法是什么?

我想用C#编写简单的脚本。 我通常会使用.bat或4NT .btm文件。 复制文件,解析文本,询问用户输入等。 相当简单,但在批处理文件中执行此操作非常困难(例如,没有例外)。 我熟悉像AxScript这样的命令行“脚本”包装器,这样我就可以使用它。 我缺少的是简单的文件操作框架。 我希望能够做cd(“..”),copy(srcFile,destFile)类型的function。 我试过的工具: NANT,我们在构建过程中使用它。 不是一个好的脚本工具。 疯狂冗长的XML语法并添加一个简单的函数,您必须编写扩展程序集。 不能内联。 电源shell。 看起来很棒,但我只是无法切换到我的主要shell。 与4NT有太多不同。 无论我做什么都需要从普通的命令提示符运行而不需要特殊的shell来运行它。 PowerShell可以用作脚本执行程序吗? 的Perl / Python的/ruby。 真的讨厌学习一种全新的语言和框架来进行批处理文件操作。 我没有能够把时间花在我需要的时间上。 另外,我们的工具链是99%的.NET商店,我真的想利用我们现有的经验和代码库。 是否有那些试图解决你用过的“在C#中制作批处理文件”问题的框架? 我希望C#/ .NET的强大function具有典型cmd.exe shell语言的立即模式类型function。 我一个人想要这样的东西吗?

以编程方式安装证书吊销列表(CRL)

我需要每周下载并安装大约50个CRL,并将它们安装在多个Windows服务器上。 下载是一个简单的部分,有没有办法编写CRL导入过程的脚本?