在尝试使用Process.Start运行所有内容时,从另一个批处理文件调用批处理文件时出现问题。基本上,我从我的c#程序中调用批处理文件的执行,如下所示:
call include.bat
//execute the rest of the batch file here include.bat文件设置路径,并可由许多其他批处理文件使用。当我运行Process.Start时,它有时会起作用,有时我会得到ERROR: cannot find include.bat。首先,你知道为什么会发生这种情况吗?以及如何从批处理文件修复此问题的想法?
发布于 2010-09-29 19:20:46
要切换到批处理文件所在的目录,请使用以下命令:
cd %~dp0我在几乎所有的批处理脚本中都是这样做的。这样的话,相对路径应该总是有效的。
发布于 2012-06-11 00:00:56
在编写脚本之前,先尝试CD /D %~dp0
发布于 2012-09-27 11:27:14
我知道这是一个古老的问题,但我认为值得注意的是,公认答案所提倡的方法(即更改工作目录)可能并不总是合适的。
一种更好的常规方法是通过完整路径引用依赖项:
call "%~dp0include.bat"(因为%~dp0已经以反斜杠结尾,所以我们不需要再添加一个。)
以下是而不是更改工作目录的一些好处:
即使在没有"SETLOCAL".
这些好处对于别名类型的批处理文件尤其重要,即使它们对于激发这个问题的特定情况并不那么重要。
https://stackoverflow.com/questions/3821050
复制相似问题