在此目录执行批处理文件
在此目录执行批处理文件
我有一个代码片段,用于我的C#表单项目。我还有一个包含以下shell命令的exp.bat文件。\n但无论我做什么,它都不会在工作目录下创建.txt文件。\n
@echo off echo "hello" > test.txt path = @"C:\Users\abc\Desktop\exp.bat"; startingPath = @"C:\Users\abc\Desktop\"; bool success = false; try { System.Diagnostics.ProcessStartInfo ProcStartInfo = new System.Diagnostics.ProcessStartInfo("cmd"); ProcStartInfo.RedirectStandardOutput = true; ProcStartInfo.UseShellExecute = false; ProcStartInfo.CreateNoWindow = false; ProcStartInfo.RedirectStandardError = true; System.Diagnostics.Process MyProcess = new System.Diagnostics.Process(); ProcStartInfo.Arguments = "/c start /wait"+path; ProcStartInfo.WorkingDirectory = startingPath; MyProcess.StartInfo = ProcStartInfo; success = MyProcess.Start(); MyProcess.WaitForExit(); } catch (Exception ex) { string s = ex.StackTrace.ToString();}
在执行批处理文件时,出现了(Executing Batch File At This Directory)这个问题。为了解决这个问题,可以在批处理文件的开头添加以下命令:
%~d0 cd %~dp0
这些命令的作用是获取当前批处理文件所在的驱动器和路径,并将当前目录切换到批处理文件所在的目录。
通过添加这些命令,批处理文件将在正确的目录中执行,而不会出现路径错误的问题。这对于需要在特定目录中执行操作的批处理文件非常有用。
只需将以上命令添加到批处理文件的开头,即可解决(Executing Batch File At This Directory)问题。这样批处理文件将始终在正确的目录中执行,无论它在哪个位置运行。