标签: vbscript

如何使用 vbscript 在现有 xml 中添加属性

我有下面的 xml,我正在使用VBSript来生成它。

<?xml version="1.0"?>
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ID="tcm:481-86880-2" Managed="10682">
  <tcm:Item ID="tcm:481-594051"/>
  <tcm:Item ID="tcm:481-594088"/>
  <tcm:Item ID="tcm:481-594089"/>
  <tcm:Item ID="tcm:481-594090"/>
  <tcm:Item ID="tcm:481-594343"/>
  <tcm:Item ID="tcm:481-594344"/>
  <tcm:Item ID="tcm:481-594578"/>
</tcm:ListItems>
Run Code Online (Sandbox Code Playgroud)

现在我有一个 pageURL (/english/destinations_offers/destinations/asiapacific/maldives.aspx),这将在匹配 ID 后显示,例如下面的伪代码

将匹配上面的 XML ID,然后我们将pageURL属性添加到上面的 xml。所以输出如下:

<?xml version="1.0"?>
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ID="tcm:481-86880-2" Managed="10682">
  <tcm:Item ID="tcm:481-594051"/>
  <tcm:Item ID="tcm:481-594088"/>
  <tcm:Item ID="tcm:481-594089"/>
  <tcm:Item ID="tcm:481-594090"/>
  <tcm:Item ID="tcm:481-594343" pageURL="/english/destinations_offers/destinations/asiapacific/maldives.aspx"/>
  <tcm:Item ID="tcm:481-594344"/>
  <tcm:Item ID="tcm:481-594578"/>
</tcm:ListItems>
Run Code Online (Sandbox Code Playgroud)

请建议使用 VBSCript

谢谢。

xml vbscript tridion

2
推荐指数
1
解决办法
8058
查看次数

Openfiles 查询以查看打开的文件

如何从计算机远程调用 Openfiles.exe(位于 server 2008 文件服务器上)以查看用户打开了哪些文件?我还需要让它在参数中以域管理员用户身份登录。

vbscript powershell command-line command-prompt dsquery

2
推荐指数
1
解决办法
4万
查看次数

返回 Windows 产品密钥的 VBScript

我需要一个 VBScript 来返回 Windows 产品密钥。我在网上找到了一些 VBScript,但这些是特定于某些 Windows 版本的。是否有可以在 Windows 7 - Windows 8.1 上运行的 VBScript?

vbscript

2
推荐指数
1
解决办法
2880
查看次数

如何在VBscript中使用通配符查找和读取文件?

我试图读取 XML 文件失败(每台计算机中的文件名都发生了变化)。如何使用通配符读取文件?
例如:D:\Logs\*.xml

脚本:

Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("D:\Logs\*.xml", ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "server1 ", "server889 ")
Set objFile = objFSO.OpenTextFile("D:\Logs\*.xml", ForWriting)
objFile.WriteLine strNewText
objFile.Closeenter code here
Run Code Online (Sandbox Code Playgroud)

io vbscript file

2
推荐指数
1
解决办法
6077
查看次数

VBScript执行成功后如何关闭CMD提示窗口

我正在从另一个调用 VBScript 以管理员身份运行。以下是 Invoker VBScript 代码

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cscript", "C:\Temp\XYZ.vbs", "", "runas", 0
Wscript.Quit 1
Run Code Online (Sandbox Code Playgroud)

以下是 XYZ.vbs 代码

On Error Resume Next 

Dim strComputerRole, strDomain, strComputer, strText, strText2
Dim arrServiceList, strNextLine
Dim objFile, objFile2, strFile, strSysDrive, strTempDir, strSQLcommand

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = wscript.createObject("Wscript.Shell")
Set colProcEnvVars = objShell.Environment("Process")
Set colSystemEnvVars = objShell.Environment("System")

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
strSysDrive = colProcEnvVars("systemdrive")
strTempDir = colProcEnvVars("SY0")

Const ForReading = …
Run Code Online (Sandbox Code Playgroud)

vbscript cmd wsh shellexecute

2
推荐指数
1
解决办法
7452
查看次数

为什么 VBS 不能正确读取此文本文件?

我有以下代码来读取文本文件:

Option Explicit 
Dim InputFile 
Dim FSO, oFile 
Dim strData 

InputFile = "C:\Program Files (x86)\AVG\CloudCare\ClientVersion.txt" 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set oFile = FSO.OpenTextFile(InputFile) 
strData = oFile.ReadAll 
oFile.Close 
msgbox strData 
Run Code Online (Sandbox Code Playgroud)

ClientVersion.txt 的内容为:

Option Explicit 
Dim InputFile 
Dim FSO, oFile 
Dim strData 

InputFile = "C:\Program Files (x86)\AVG\CloudCare\ClientVersion.txt" 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set oFile = FSO.OpenTextFile(InputFile) 
strData = oFile.ReadAll 
oFile.Close 
msgbox strData 
Run Code Online (Sandbox Code Playgroud)

当我运行 VBS 代码时,我得到以下信息:

VBS txt文件读取

如果我在同一位置创建一个具有相同内容的新文本文件,它工作正常。VBS 无法读取这个简单的文本文件有什么原因吗?我看不到文件权限有任何问题。

vbscript

2
推荐指数
1
解决办法
3051
查看次数

如何在 VBScript 中获取 %username%?

我试图对域用户隐藏共享文件夹的网络路径。(Windows Server 2012) 我在搜索网络驱动器标签时发现了这个脚本:

Option Explicit
Dim objNetwork, strDrive, objShell, objUNC
Dim strRemotePath, strDriveLetter, strNewName

strDriveLetter = "H:"
strRemotePath = "\\servername\sharedfoldername$\"
strNewName = "Save Your Files Here"

'Section to map the network drive
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath

'Section which actually (re)names the Mapped Drive
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(strDriveLetter).Self.Name = strNewName

WScript.Echo "Check : "& strDriveLetter & " for " & strNewName
WScript.Quit
Run Code Online (Sandbox Code Playgroud)

我的网络路径如下所示:

strRemotePath = "\\servername\sharedfoldername1$\%username%"
strRemotePath = "\\servername\sharedfoldername2$\%username%"
strRemotePath = "\\servername\sharedfoldername5$\%username%"
strRemotePath = "\\servername\sharedfoldernameNNN$\%username%"
Run Code Online (Sandbox Code Playgroud)

当我插入时 …

windows vbscript networking

2
推荐指数
1
解决办法
1551
查看次数

VBScript 从桌面运行文件(任何用户)

我创建了一个 VBScript 来在不打开文件的情况下从 excel 运行宏。

Set objExcel = CreateObject("Excel.Application")  
objExcel.Application.Run "'C:\Users\MyUser\Desktop\RM.xlsm'!Module4.Email"  
objExcel.DisplayAlerts = False  
objExcel.Application.Quit  
Set objExcel = Nothing
Run Code Online (Sandbox Code Playgroud)

我想在不同的计算机上使用这个 VBScript 和 XLSM 文件,那么我怎样才能改变这个脚本而不用每次都编辑路径呢?
(可能是从当前文件夹运行的代码或从任何用户桌面运行的代码)

vbscript path

2
推荐指数
1
解决办法
519
查看次数

命令行执行VBScript文件执行VBA宏未能产生msgbox

情况:

我正在尝试从 Windows 命令行运行 VBScript。该脚本打开 excel,导入一个.bas文件并在其中运行宏。该宏随后应显示一个 VBA MsgBox。

  1. 如果我.vbs在桌面上右键单击该文件,然后选择Run VBScript,它就可以完美运行。

右键单击并运行 VBScript

  1. 如果我从命令行执行以下命令,在正确的位置(即桌面),虽然一切似乎都没有错误地运行,但不会显示 MsgBox。

    Test.vbs
    
    Run Code Online (Sandbox Code Playgroud)

我尝试过的:

我看了很多文章,其中一些我列为参考。特别是,我努力完成了这个答案。我已经尝试过类似的事情:

CScript Test.vbs
WScript Test.vbs
CScript //logo Test.vbs
WScript //nologo Test.vbs
Run Code Online (Sandbox Code Playgroud)

阅读该答案后,我确认 Windows 知道如何启动 .vbs 文件,这似乎不言而喻,因为我可以右键单击并运行。

所以:

1)跑步 assoc .vbs给了我预期的:

:\Windows\System32>assoc .vbs
.vbs=VBSFile
Run Code Online (Sandbox Code Playgroud)

2)运行ftype VBSFile给出了预期:

VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
Run Code Online (Sandbox Code Playgroud)

3)我尝试在命令行字符串中添加暂停和等待时间,但无济于事。

4)我添加了各种标志,包括调试,例如CScript //X ,没有区别。

题:

如何从命令行运行我的 VBScript 并显示 msgbox?

VBSCript (Test.vbs)

Option Explicit

Sub ExcelMacroExample() 
  Dim xlApp 
  Dim xlBook 
  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook = …
Run Code Online (Sandbox Code Playgroud)

vbscript excel vba

2
推荐指数
1
解决办法
2286
查看次数

修剪字符串末尾的最后一个字符

我有一个循环,它正在创建一个字符串,直到文件结束。取决于我当时有多少产品。我需要在最后修剪最后一个逗号。

我得到:

{ sku: '6200', display_name:'Product 1', unit_price: 497.37, qty: 1 },  
{ sku: '2344', display_name:'Product 2', unit_price: 824.21, qty: 1 },

Run Code Online (Sandbox Code Playgroud)

我需要:

{ sku: '6200', display_name:'Product 1', unit_price: 497.37, qty: 1 },  
{ sku: '2344', display_name:'Product 2', unit_price: 824.21, qty: 1 }

Run Code Online (Sandbox Code Playgroud)

环形:

<%
set rsheadercart = db.execute(sqlheadercart)
    if not rsheadercart.eof then 
        do until rsheadercart.eof 




            items = items & " { sku: '" & rsheadercart("ten_digit_part_number") & "',"
            items = items & " display_name:'" & rsheadercart("part_name") & "',"
            items = …
Run Code Online (Sandbox Code Playgroud)

vbscript json loops asp-classic

2
推荐指数
1
解决办法
106
查看次数