簡體   English   中英

權限被拒絕使用VBS訪問csv文件

[英]Permission Denied accessing csv file with VBS

我正在嘗試在VBS中創建一行,該行將創建一個文件路徑,並將文件名作為變量,但出現“拒絕權限”錯誤。

這是我到目前為止的內容:

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

我仍然收到“權限被拒絕”運行時錯誤。 文件已創建,但這是其中唯一寫入的內容:

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

如果您的.bat文件將curltest.vbs的(StdOut)輸出重定向到.csv文件,則在.vbs中創建(或寫入).csv沒有任何意義。 相反,您應該WScript.Echo要在.csv中顯示的信息。

另外,您需要擺脫徽標-通過使用// NoLogo啟動.vbs或使用// S選項將// 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM