[英]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.