C#执行批处理文件,重定向时发生的一场乌龙
2014-04-25 16:57
211 查看
为了做一个自动备份文件的功能,本来采用直接拷贝文件到新的路径,但程序已aspnet身份访问远程机会没有权限,按照网上的解决办法(在config中指定特殊身份)也没有解决,于是采用批处理方法来解决。
创建批处理文件:
执行批处理文件:
name是批处理文件的路径
然而重定向到txt的文件并没有出现,可是直接执行bat文件就正常。
折腾了半天才发现是场乌龙,进程执行时的默认路径并不是bat文件所在路径,所以txt文件需要写完整路径。。。
之后又遇到了2个小问题:1.路径中有空格:给路径加“”解决;2.路径中有汉字,用pause加回显发现汉字变成了乱码:未解决
创建批处理文件:
public static void CreateCopyBat(string src, string dest) { FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("~/copyfile.bat"), FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.Write(string.Format( @"@echo off if exist {0} ( if not exist {1} ( md {1} ) xcopy {0} {1} /s /e /y echo CreatCopyBat: copyfile {0} to {1} sussecc! time:{2} >> backupFileLog.txt ) else ( echo CreatCopyBat: {0} is not exit! time:{1} >> backupFileLog.txt )", src, dest, DateTime.Now.ToString())); sw.Close(); fs.Close(); }
执行批处理文件:
name是批处理文件的路径
public void execPRO(string name) { using (Process pro = new Process()) { pro.StartInfo.FileName = name; bool isok = pro.Start(); } }
然而重定向到txt的文件并没有出现,可是直接执行bat文件就正常。
折腾了半天才发现是场乌龙,进程执行时的默认路径并不是bat文件所在路径,所以txt文件需要写完整路径。。。
之后又遇到了2个小问题:1.路径中有空格:给路径加“”解决;2.路径中有汉字,用pause加回显发现汉字变成了乱码:未解决
相关文章推荐
- c#执行bat批处理文件,并通过线程将结果显示在控件中
- C#: 执行批处理文件(*.bat)的方法
- C#怎样执行DOS批处理文件
- C# 执行批处理文件
- C#执行批处理,当批处理不在程序根目录时,出现“找不到文件”的问题的解决方法
- C# 执行bat批处理文件
- C#: 执行批处理文件(*.bat)的方法
- C# 执行外部批处理(bat)文件
- C#中执行批处理文件(.bat),执行数据库相关操作
- C# 执行bat批处理文件
- c#中调用cmd命令执行批处理文件
- C# 执行批处理文件(*.bat)的方法代码
- C# 执行bat批处理文件
- C#: 执行批处理文件(*.bat)的方法
- C#调用批处理(bat)文件,并获取执行批处理(bat)文件后返回值
- c#中调用cmd命令执行批处理文件
- (C#) 调用执行批处理文件
- c# 执行批处理文件
- 使用C#创建WindowsService(Windows服务):定期执行Dos命令或Bat(批处理)文件
- C# 执行bat批处理文件