vbscript - VBScript 权限被拒绝
问题描述
我正在尝试使用 VBScript 在 SecureCRT 上进行一些自动化操作。我现在的问题是,大约 30% 的时间我尝试运行我的脚本(有时在会议中进行演示......)我收到“权限被拒绝”错误。
很多时候,快速的解决方案是将我的脚本复制并粘贴到一个新的 .txt 文件中。最终旧的再次工作,但它非常挑剔。今天,我的脚本奏效了。5分钟后,我的权限被拒绝了。我创建了一个修订版,它奏效了。5 分钟后,一个出错了,原来的版本不再给我这个错误。很难跟踪,我不确定是什么原因造成的。
编辑:此行发生错误。
Set pso = CreateObject("Scripting.FileSystemObject")
Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True)
它非常接近脚本的顶部。
有人有类似的经历吗?
解决方案
问题是您没有指定完整路径,因此您尝试编写的文件的实际路径取决于您运行脚本的方式。
如果您双击 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)
推荐阅读
- ios - 为什么我不能存档 Xamarin.Forms iOS 应用程序?
- google-apps-script - 如何获取孤立的驱动器文件列表
- applescript - 组织脚本的结果
- go - exec ffmpeg 标准输出管道停止
- javascript - 使用字符串搜索对象并返回匹配的键值
- c++ - 如何从 avi 文件中抓取所有帧 - 如何修改 MS Sample Grabber 示例
- excel - 使用 Excel VBA 阅读邮件时 Outlook 崩溃
- java - Spring项目中APN的休息控制器(推送通知)
- python - 当在csv中提取视频的坐标和帧数时,如何在视频上绘制边界框?
- python - TypeError:Params 必须在 Python 中的列表、元组或行中