Я пытаюсь автоматизировать SecureCRT с помощью VBScript. Моя проблема сейчас в том, что примерно в 30% случаев, когда я пытаюсь запустить свой сценарий (иногда на собраниях для презентации ...), я получаю ошибку «В разрешении отказано».
В большинстве случаев быстрое решение состоит в том, что я копирую и вставляю свой скрипт в новый файл .txt. В конце концов старый снова работает, но он невероятно привередлив. Сегодня мой сценарий заработал. Через 5 минут мне отказали в разрешении. Я создал ревизию, которая заработала. Через 5 минут в одной из них возникла ошибка, и исходная версия перестала выдавать мне ошибку. За этим трудно уследить, и я не уверен, что это вызывает.
Редактировать: Ошибка в этой строке.
Set pso = CreateObject("Scripting.FileSystemObject")
Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True)
Это очень близко к началу скрипта. У кого-нибудь был подобный опыт?
Ошибка в этой строке. Set pso = CreateObject("Scripting.FileSystemObject")Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True) Это очень близко к началу сценария.
@KuboMD включает код в исходный вопрос. Вы можете сделать это с помощью опции редактировать. Код в комментариях неясен, и комментарии не обязательно останутся навсегда.





Проблема в том, что вы не указываете полный путь, поэтому фактический путь к файлу, который вы пытаетесь записать, зависит от того, как вы запускаете скрипт.
если вы дважды щелкните vbs, он будет запущен из% windir%, где у вашего пользователя нет прав на запись.
Если вы откроете cmd, cd в папку, где вы можете написать и запустить
wscript pathtoyourvbs\yourfile.vbs
тогда ваш файл будет создан в текущей папке без ошибки отказа в разрешении.
Если вы хотите точно знать, где создан ваш файл, вы должны указать абсолютный путь, а не относительный.
Вы можете использовать переменные среды для этого или, возможно, начать с получения папки, в которой находится vbs, и использовать ее для создания своего пути и получения созданного файла рядом с .vbs:
scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
Set pso = CreateObject("Scripting.FileSystemObject")
Set Pile = pso.OpentextFile(scriptdir+"\Alarm_logs.txt",8, True)
Чтобы получить помощь с кодом: покажите свой код. Покажи тоже ошибку.