我有一个运行 .exe 的任务,这是一个从 txt 文件读取的简单 VB 程序,在代码中我有以下内容:
My.Computer.FileSystem.OpenTextFileReader("test.txt")
但是当调度程序运行 .exe 时,它会引发 FileNotFound 异常,因为它正在“C:\Windows\system32\test.txt”中搜索。
我尝试将路径写为“.\test.txt”,我需要该文件与.exe位于同一目录中。
我该如何修复这个问题?这是 Windows 7 任务计划程序的问题吗?
注意:当我手动运行该程序时,它不会引发异常。更新:路径必须是这样的,因为我要在其他计算机上使用其他路径部署 .exe
答案1
任务计划程序不会加载用户的配置文件来运行程序,因此它会启动“C:\windows\system32\”中的脚本。
在任务属性的“操作”部分中,您可以设置“启动于”文件夹以指定在启动程序之前要更改到哪个文件夹。
来自Windows关于此主题的帮助:
在里面开始于(可选)文本框,您可以指定执行程序或脚本的命令行的工作目录。这应该是程序或脚本文件的路径,或者是可执行文件使用的文件的路径。
否则,您需要指定要访问的文件(test.txt)的确切路径,或者确保 test.txt 存在于 C:\windows\system32 中,或存在于系统 Path 变量中的文件夹中。
如果文本文件与您在任务中运行的 EXE 位于同一文件夹中,那么在 EXE 本身中,您可以通过读取 EXE 的当前路径来指定 TXT 文件的路径。
在 VB 中,你可以使用应用程序路径命令来获取该信息。