好的,所以我在vbs文件中有一些代码,基本上我想打开一个CSV文件。执行一些更改(我可以稍后解决),然后将其保存为xls。使用完全限定的文件路径运行时,代码可以完美运行。但是我需要文件路径是相对的。这些文件将始终打开并保存到运行脚本的相同路径中。我看过GetParentFolderName和GetAbsolutePathName。但是我无法想象如何在文本中调用完全限定的路径。我已尝试将变量放在文件名所在的位置且没有引号,并附加句点。
有关构建函数或任何内容的任何示例,然后在下面的代码中调用它将是一个巨大的帮助。
Dim myXL
Const xlDelimited = 1
Const xlWorkbookNormal = -4143
Set myXL=CreateObject("Excel.Application")
myXL.Visible=False
myXL.WorkBooks.OpenText "file.csv", , , xlDelimited, , , , , True
myXL.DisplayAlerts=False
MORE CODE WILL GO HERE
myXL.ActiveWorkbook.SaveAs "new_file.xls", xlWorkbookNormal
myXL.DisplayAlerts=True
myXL.ActiveWorkbook.Close False
myXL.Quit
Set myXL = Nothing
答案 0 :(得分:1)
您可以使用我在Relative Path
的答案中找到的代码来获取脚本的路径p = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
p应该是您脚本的路径,然后您可以将"file.csv"
编辑为p & "\file.csv"
等等。
答案 1 :(得分:1)
指出/强调
&
而非.
(点/句点)
>> f = WScript.ScriptFullName
>> n = WScript.ScriptName
>> p = goFS.GetParentFolderName(f)
>> a = goFS.GetAbsolutePathName(n)
>> c = goWS.CurrentDirectory
>> WScript.Echo "c", c
>> WScript.Echo "p", p
>> WScript.Echo "?", p & n
>> Wscript.Echo "a", a
>> WScript.Echo "!", goFS.BuildPath(p, n)
>>
c C:\Documents and Settings\eh
p M:\bin
? M:\binivbs.wsf
a C:\Documents and Settings\eh\ivbs.wsf
! M:\bin\ivbs.wsf