标签: vbscript

VBScript 将日期转换为字符串

所以我有一个可能很简单的问题,但我找不到答案。

我正在编写一个 VBScript,它将子文件夹从一个文件夹移动到另一个文件夹。移动时,我想将日期附加到子文件夹名称上。我一切正常,只是我不知道如何将日期转换为字符串,以便将其添加到文件夹名称中。

curDate =  Month(Date) + "_" + Day(Date) + "_" + Year(Date) + "_" + Time

If  fs.FolderExists(rsltFldrPath) Then

'Grab folder and Subfolders
Set fldr = fs.GetFolder(rsltFldrPath)
Set subFldr = fldr.SubFolders

For each folder in subFldr
    moveTo = archFldrPath + "\" +folder.name + curDate
    fs.MoveFolder folder, moveTo
Next
End If
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。谢谢!

string vbscript date

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

当没有文件时,InstallShield 使用 VBScript 和 CustomAction 删除文件失败

卸载以前的安装(我使用 InstallShield 2009 构建的)时,我想删除程序在卸载结束时所在的整个文件夹。我无法弄清楚如何使用自定义 Aaction 来做到这一点,因此使用下面的代码,我决定在安装开始后立即删除该文件。如果程序已经安装,这可以正常工作……但如果之前没有安装,它会抛出错误 1701,因为显然,该文件夹不存在!我不知道如何解决这个问题,而且我几乎不知道 VBScript。我开始尝试捕获错误以掩盖错误,但显然 VBScript 中不存在。

Dim fso, Folder2Delete
Folder2Delete =  "C:\Program Files\MyProgramDir"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder(Folder2Delete)
Run Code Online (Sandbox Code Playgroud)

那么,如何将自定义操作粘贴到 InstallShield 中的卸载中,或者如何将 VB 脚本设置为仅删除存在的文件?或者最后一搏,我怎样才能让它在它不存在时不显示错误......?

非常感谢,这让我发疯了!

vbscript windows-installer installshield installshield-2009

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

vbscript - 替换所有空格

我有 6400 多条记录在循环中。对于其中的每一个:我通过针对类似于邮局使用的内容(查找地址)的内容进行测试来检查地址是否有效。我需要仔细检查我撤回的邮政编码是否匹配。

唯一的问题是邮政编码可能以多种不同的格式输入,例如:

OP6 6YH
OP66YH
OP6  6YH. 
Run Code Online (Sandbox Code Playgroud)

If Replace(strPostcode," ","") = Replace(xmlAddress.selectSingleNode("//postcode").text," ","") Then

我想从字符串中删除所有空格。如果我执行上面的替换,它会删除第一个示例的空间,但为第三个示例保留一个空间。

我知道我可以使用循环语句删除这些,但相信这会使脚本运行非常缓慢,因为它必须循环遍历 6400 多条记录才能删除空格。

还有其他方法吗?

vbscript replace

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

从另一个 .VBS 文件为类(驻留在 B.vbs 中)创建实例

我有 2 个 vbs 文件。

A.vbs

Class test
  public a
  public b
End Class
Run Code Online (Sandbox Code Playgroud)

B.vbs

Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")
objShell.Run "C:\Users\shanmugavel.chinnago\Desktop\Test3.vbs" 

Dim ins
Set ins = new test 'Here throws "Class not defined: test"
ins.a = 10
ins.b = "SCS"

msgbox ins.a
msgbox ins.b
Run Code Online (Sandbox Code Playgroud)

现在我想在 B.vbs 文件中实现这个。但是在为 A.vbs 中可用的类创建实例时会引发错误。有什么帮助吗?

vbscript

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

Vbscript Printscreen 到 MSpaint

拍摄活动窗口的屏幕截图。

Set Wshshell=CreateObject("Word.Basic")
WshShell.sendkeys"%{prtsc}"
WScript.Sleep 1500
Run Code Online (Sandbox Code Playgroud)

运行 Mspaint 并粘贴。

set Wshshell = WScript.CreateObject("WScript.Shell")
Wshshell.Run "mspaint"
WScript.Sleep 500

WshShell.AppActivate "Paint"
WScript.Sleep 500

WshShell.sendkeys "^(v)"
WScript.Sleep 1500
Run Code Online (Sandbox Code Playgroud)

在这里,对活动窗口进行截图的操作工作正常。另外,它以mspaint开头,但内容并未粘贴到paint文件中。

windows vbscript printscreen

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

从 javascript/php 在服务器上运行 VBScript

我有一个用 JavaScript 和 PHP 编写的单页应用程序,我想在我的服务器上运行一个外部 .vbs 文件?

我曾尝试使用 php COM 类以及 exec() 无济于事。有没有人成功地做到了这一点?甚至有可能吗?

javascript php com vbscript

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

UWF 提交(如 EWF)

Windows XP 和 7 中的 EWF(Enhanced Write Filter) 有一个命令“commit”,例如:

ewfmgr c:-commit
Run Code Online (Sandbox Code Playgroud)

此命令在下次重新启动时将所有更改保存到磁盘。有没有办法在 Windows 8.1 中为 UWF(统一写入过滤器)做同样的事情?另外,尽可能在 UWF 重置(清除)所有更改?

PS 这应该在命令行或脚本中,而不是 UI。

windows vbscript powershell cmd windows-8.1

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

VBS:计算数组中的项目数

我怎么能简单地调查给定数组中的项目数。我用了这个代码,但是有点费力

myArr=Array("frog", "cat", "bat", "rat", "horse")
 for i=0 to UBound(myArr)
 ' Msgbox i +1 & ".item: " & myArr(i) 
 next
Msgbox i & " items in this array:" & vbcrlf & Join(myArr)
Run Code Online (Sandbox Code Playgroud)

谢谢

arrays vbscript

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

vbscript:如何将日期转换为日期和时间

我有最后一次从 WMI 启动的时间,它看起来像“20141103113859.220250+060”。我想将其转换为当前时间的天数和时间。

是否可以?

vbscript

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

使用 VBScript 代码更改 Excel 中的边距

我有一个脚本,当前接收 Excel 文档并将其转换为报告(仍为 Excel 格式),分为两张表:UPLOAD 和 PRINTOUT。

上传表显示从原始 Excel 文档中获取的所有信息,并将其过滤到报告的正确列/行中。打印输出表采用上传表并进一步格式化以准备实际打印输出。

问题是,我正在尝试应用 Orientation 和 Margin PageSetup 参数,但它只是忽略了它们。无论我做什么,页面格式都不会改变。

主要是,我需要更改这些参数(边距以英寸为单位):

  • 景观方向
  • 左边距 (0.36)
  • 右边距 (0.25)
  • 顶部和底部边距 (0.5)
  • 页眉和页脚边距为 (0.25)

这是我认为存在问题的代码:

'Start printout sheet

Set objLastSheet = objWorkbook.Worksheets("Upload")
Set objWorksheet = objWorkbook.Worksheets("Upload")
objWorksheet.Copy, objLastSheet

Set objWorksheet2 = objWorkbook.Worksheets("Upload (2)")
objWorksheet2.Name = "Printout"

Set objRange = objWorksheet2.Pagesetup
Set objRange.PageSetup.Orientation= xlLandscape
Set objRange.PageSetup.LeftMargin = Application.InchesToPoints(0.36) 
Set objRange.PageSetup.RightMargin = Application.InchesToPoints(0.25)
Set objRange.PageSetup.TopMargin = Application.InchesToPoints(0.5)  
Set objRange.PageSetup.BottomMargin = Application.InchesToPoints(0.5) 
Set objRange.PageSetup.HeaderMargin = Application.InchesToPoints(0.25) 
Set objRange.PageSetup.FooterMargin = Application.InchesToPoints(0.25) 
Run Code Online (Sandbox Code Playgroud)

我没有为上传编写其余的代码,我只是被要求使边距起作用,所以我一直在尝试将任何需要添加到现有代码中。不确定它是语法还是我只是遗漏了一些重要的东西。先感谢您! …

vbscript excel vba

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