权限拒绝使用VBS访问csv文件

时间:2014-07-25 16:05:06

标签: variables batch-file vbscript

我正在尝试在VBS中创建一个行,该行将创建一个文件路径,文件名作为变量,但我得到一个Permission Denied错误。

这是我到目前为止所做的:

filename = WScript.Arguments.unnamed(0) 'this value is transfered from a batch file.
Const ForReading = 1, ForWriting = 2, ForAppending = 8, CreateIfNeeded = true

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
xmlDoc.Load ("C:\Users\c1921\Ayla_Data\XMLFile.xml")

Set colNodes = xmlDoc.SelectNodes _

("/properties/property/(name)")

For Each objNode In colNodes

strSource = "C:\Users\c1921\Ayla_Data\AylaDatapoints\" & filename & ".csv"

Dim fso, f
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f = fso.OpenTextFile(strSource, 2) 

我还添加了msgbox(filename)行,以查看我得到的值,这是正确的值。

我也试过这样的事情,看看它是否会有所帮助,但它也不起作用:

Set f = fso.OpenTextFile("C:\Users\c1921\Ayla_Data\AylaDatapoints\AC000N000004593.csv", 2)

这应该很容易我不知道我哪里出错了。任何帮助找到正确的方向将不胜感激。

如果相关的话,我也尝试了这样的事情(以及其他变体):

Set f = fso.OpenTextFile("C:\Users\c1921\Ayla_Data\AylaDatapoints\" & Chr(34) & filename & Chr(34) & " " & ".csv", 2) & Chr(34)

修改

尝试使用以下代码在VB中创建文件:

strSource = "C:\Users\c1921\Ayla_Data\AylaDatapoints\" & filename & ".csv"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.CreateTextFile(strSource, _ 
    ForWriting, True)

objLogFile.Writeline

我仍然得到Permission Denied运行时错误。该文件已创建,但这是唯一写入其中的内容:

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

1 个答案:

答案 0 :(得分:1)

如果你的.bat文件将curltest.vbs的(StdOut)输出重定向到.csv文件,那么在.vbs中创建(或写入).csv是没有意义的。相反,你应该WScript.Echo你想要出现在.csv。

的信息

此外,您需要删除徽标 - 通过使用// S选项启动带有// NoLogo的.vbs或将//“NoLogo”切换到用户的c / wscript。

证据:

copy con curltest.vbs
WScript.Echo "WScript.Echoed into whatever.csv"
^Z

cscript //NoLogo curltest.vbs >whatever.csv

type whatever.csv
WScript.Echoed into whatever.csv