未从所选目录运行的文件

Posted

技术标签:

【中文标题】未从所选目录运行的文件【英文标题】:Files not running from the directory chosen 【发布时间】:2021-11-27 02:24:40 【问题描述】:

我运行我的程序,它运行良好。我正在使用外部批处理和 VBS 文件但是如果这些文件不在我的主 C:\ 目录中,那么它根本不起作用!我得到一个找不到指定的文件,所以如何我可以确保我的文件在我的程序每次安装的目录中运行 C:\Program Files (x86) \ 然后它当然会创建一个程序文件夹。

我使用的代码示例来自本网站的另一个论坛。

Process scriptProc = new Process();
            scriptProc.StartInfo.FileName = @"Services.bat";
            scriptProc.StartInfo.WorkingDirectory = @"c:\Program Files (x86)\Buzzard X Soy Optimzation Program\"; //<---very important 
            scriptProc.StartInfo.Arguments = "//B //Nologo Services.bat";
            scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up
            scriptProc.Start();
            scriptProc.WaitForExit();
            scriptProc.Close();

【问题讨论】:

您是直接从C:\&gt; 运行代码吗?如果是这样,那么这就是scriptProc.StartInfo.FileName 正在寻找的地方,而不是其他目录 不,那只是出于某种原因它在哪里工作 你是如何运行代码的呢?来自 CMD? 嗯是和否按钮是在 VS 中编译的,但批处理文件通过 CMD 运行是的。但由于某种原因,它只有在文件直接位于 C: 和 C: 时才有效:只有没有子文件夹我也是代码和 C# 的新手。 【参考方案1】:

您可以使用Environment.CurrentDirectory 获取运行您的可执行文件的目录,并使用navigate to the desired folder 相对于您的起始路径。

由于您遇到的确切问题,您实际上不应该在代码中放置绝对路径。

【讨论】:

如果您不介意,我可以举个例子吗?以及如何应用它?我是 C# 新手 @Buzzard 当然。如果您给我一些输入,我可以向您展示如何使用您的代码来执行此操作。在您编写的代码的正上方写下这个var path = Environment.CurrentDirectory。在那之后放一个断点,让我知道路径是什么。 我这样做了,你想让我运行它吗? 它似乎可能确实有效.. 让我构建它 rq 如果它确实有效,但非常感谢 @Buzzard 欢迎您。如果我的回答为您解决了问题,请点赞并将其选为最佳答案

以上是关于未从所选目录运行的文件的主要内容,如果未能解决你的问题,请参考以下文章

php 重力形式从所选字段设置密码

如何从所选键再次迭代python dict?

vbscript 从所选单元格中删除HTML标记

从所选变体向 WooCommerce 变量产品标题添加一些属性值

从所选行中检索表ID

Wordpress - 在发布之前从所选类别中排除帖子类型