C#执行批处理,当批处理不在程序根目录时,出现“找不到文件”的问题的解决方法

原创 2017年01月03日 18:17:13

使用下面的C#代码执行位于Bat目录下面的批处理脚本。

Process proc = new Process();
proc.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + @"Bat\test.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.UseShellExecute = true;
proc.Start();

批处理完成删除文件的操作,代码如下所示。

@echo on
del t.txt
pause

执行代码,出现下面的提示信息,找不到指定文件,但是文件真真切切的存在于Bat目录下面。
这里写图片描述

解决这个问题很简单,只需要在前述C#代码前面加上下面这句代码就OK啦。

Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory + @"Bat\";

这句代码将当前工作目录指定为Bat目录,这样的话程序就会去Bat目录查找指定文件了,而不是去程序根目录查找文件,在程序根目录查找文件,自然找不到了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

处理c#调用c++dll所引起的“找不到指定模块"和BadImageFormatException异常

如今的windows应用程序开发,由于.net语言简练,框架功能庞大,已经是桌面程序开发的不二之选,特别是利用c#来开发界面的方便程度比原来c++的mfc提高了不止十万八千里。然而,c++代码编译后运...
  • CNHK1225
  • CNHK1225
  • 2016年11月04日 16:33
  • 953

C# 系列——未能找到路径“..”的一部分

情况1:web开发,想要从数据库读取文件,并在用户本地新建,然后直接打开,这样就不会存在进程问题,但想法是好的,现实总是残酷的!经过我的不懈努力...没有成功!分析原因:可能是因为web形式始终是网络...
  • u011009362
  • u011009362
  • 2015年07月29日 15:50
  • 2589

bat删除N天以前的文件

通过 Forfiles 删除指定目录下过期的备份文件 /*-- 用法详解 D:/>forfiles /?   FORFILES [/P pathname] [/M searchmask] [/...
  • u010720985
  • u010720985
  • 2017年02月08日 11:08
  • 701

当执行批处理文件出现“系统找不到指定的路径”

1.设置环境变量   JAVA_HOME C:\Program Files\Java\jdk1.6.0_10 CLASSPATH  %JAVA_HOME%\lib;%JAVA_HOME%\lib\...
  • u014089832
  • u014089832
  • 2017年07月23日 16:52
  • 785

C# 两种启动bat文件方法的区别——关键在于进程的工作目录

1、 private void RunBat(string batPath) { Process pro = new Process(); FileInfo file = new Fil...
  • Small_bottle_cap
  • Small_bottle_cap
  • 2015年11月12日 11:46
  • 2472

Unity 的ProtoBuff 相关批处理

孙广东  2015.9.25批处理的好处就不说了。 ProtoBuff这里也不多说什么, 看最后面的介绍吧!先看看批处理脚本@echo off :: 注: 这是放在Unity的Assets 下的文件...
  • u010019717
  • u010019717
  • 2015年10月13日 23:40
  • 2174

Windos批处理查找复制所需目录中的文件

  • 2015年10月23日 13:42
  • 782B
  • 下载

批处理

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里  可以含多条子命令,从第一行开始...
  • u011500419
  • u011500419
  • 2018年01月17日 13:27
  • 21

MRT和MST的批处理问题

之前使用MODIS数据的时候,一直使用的是二级以上产品,总是使用MRT来进行拼接,当时对于遥感一知半解,安装MRT的时候,还需要Java的环境,看网上的安装步骤,感觉非常繁琐,很复杂,现在想来,还是水...
  • ko_ng
  • ko_ng
  • 2014年03月27日 16:33
  • 1788

一天一篇批处理之——Part3:复制/移动文件命令move,copy,xcopy

一天一篇批处理之——Part3:复制/移动文件命令move,copy,xcopy 一,move Move是一个移动文件/文件夹的命令 例1.1 move a.txt \file\ move file ...
  • jiangxian2008
  • jiangxian2008
  • 2016年10月01日 17:38
  • 3062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#执行批处理,当批处理不在程序根目录时,出现“找不到文件”的问题的解决方法
举报原因:
原因补充:

(最多只允许输入30个字)