从Linux到Windows在SSH上运行VBScript
|
这是我的难题:
我有一些SAS代码,作为其[某种程度上]广泛处理的一部分,可以在\“ Excel \”中生成数据质量报告。引用的原因是,SAS仅真正生成可以在Excel中打开的XML文档。
但是,事实证明,大多数版本的Excel在打开该XML文件时都会(通过对话框)抱怨,而某些版本的Excel甚至不会走得那么远。
为了减轻这种情况,必须有人手动打开此“ excel \”文件并将其保存为真实的excel文件,然后再将其发送给其他[重要]人员。
显然,我们想使它自动化。那甚至不是问题。我创建了一个简单的小VBScript程序来打开文件,并将其另存为Excel。繁荣。问题解决了。好吧,不是真的。
事实证明,将这种VBScript集成到常规数据处理中是一种PITA,因为所有这些操作都是在Linux Box上进行的。好的,看来还不错。我们设置了一个虚拟Windows终端服务器,该服务器具有有限的使用ID,该ID可以装入框中并运行特定命令。现在,Linux盒子上的bash脚本将XML文件与VBScript一起放入一个文件夹中的Windows VM中,并尝试使用以下命令远程执行VBScript
cscript myscript.vbs myxlsfile.xls
从理论上讲,这应该起作用,但是会出现警告错误:
Microsoft Excel无法访问文件\'myxlsfile.xls \'。有几种可能的原因:
等等
有人对可能出什么问题有任何想法吗?
这是VBScript:
Set oXL = CreateObject(\"Excel.Application\")
Set FSO = CreateObject(\"Scripting.FileSystemObject\")
oXL.DefaultFilePath = \"C:\\Temp\"
oXL.DisplayAlerts = False
oXL.Visible = False
If FSO.FolderExists(oXL.DefaultFilePath) Then
Set xmlFile = FSO.GetFile(oXL.DefaultFilePath & \"\\\" & TargetFileName)
oXL.Workbooks.Open(xmlFile.Name)
\' -4143 is Excel 2003 format
oXL.ActiveWorkBook.SaveAs xmlFile.Name, -4143
oXL.ActiveWorkBook.Close SaveChanges = True
Set oFolder = Nothing
End If
oXL.DisplayAlerts = True
oXL.Quit
Set oXL = Nothing
谢谢,
- 一种
编辑:也许值得重申,当我从Windows术语服务器上的命令行运行此命令时,它似乎工作正常。我还尝试回显所有各种路径/文件名变量,以确保它们正确无误(在两种情况下)
没有找到相关结果
已邀请:
4 个回复
傻寺俊擒
? 尝试从ssh会话运行
。
骂狮淋唐便
脾萌
乏摩纶誊伟