У меня есть задача, которая запускает .exe, это простая программа VB, которая читает из TXT-файла, в коде у меня есть это:

 My.Computer.FileSystem.OpenTextFileReader("test.txt")

Но когда планировщик запускает .exe, он генерирует исключение FileNotFound, потому что он ищет в «C:\Windows\system32\test.txt».

Я попытался записать путь как ".\ Test.txt". Мне нужно, чтобы файл находился в том же каталоге, что и .exe.

Как я могу это исправить? Это проблема планировщика задач Windows-7?

Примечание: когда я запускаю программу вручную, она не выдает исключение. обновление: путь должен быть таким, потому что я собираюсь развернуть .exe на других компьютерах с другими путями

1 ответ1

0

Планировщик задач не загружает профиль пользователя для запуска, поэтому он запускает сценарии в «C:\windows\system32\».

В разделе "Действие" свойств "Задачи" вы можете указать папку "Start In", чтобы указать, какую папку следует изменить перед запуском программы.

Из справки Windows по этому вопросу:

В текстовом поле Start in (необязательно) вы можете указать рабочий каталог для командной строки, которая выполняет программу или скрипт. Это должен быть либо путь к файлу программы или скрипта, либо путь к файлам, которые используются исполняемым файлом.

В противном случае вам нужно будет указать точный путь к файлу, к которому вы хотите получить доступ (test.txt), или убедиться, что test.txt существует в C:\windows\system32 или в папке в системной переменной Path.

Если текстовый файл будет находиться в той же папке, что и исполняемый файл EXE в задании, то в самом EXE вы можете указать путь к файлам TXT, считав текущий путь к EXE.

В VB вы можете использовать команду App.Path, чтобы получить эту информацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .