标签: vbscript

从列表中回显一个随机名称,vbscript

我是编程的新手,我想制作一个从Vb Script的列表中随机选择名称或句子的程序。

这是列表:

Jacob
James
Jason
Caleb
Ashlee
John
Run Code Online (Sandbox Code Playgroud)

该程序需要从该列表中选择一个随机名称。

如果有人可以提供帮助,我将非常感谢,谢谢

vbscript

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

使用vbTextCompare时StrComp的意外结果

目标

按字典顺序比较两个字符串,忽略大小写.

使用StrComp的可能解决方案

请考虑以下脚本:

val1 = "test9999"
val2 = "TEST_59895"

LexCompare val1, val2, vbBinaryCompare
LexCompare LCase(val1), LCase(val2), vbBinaryCompare
LexCompare UCase(val1), UCase(val2), vbBinaryCompare

LexCompare val1, val2, vbTextCompare
LexCompare LCase(val1), LCase(val2), vbTextCompare
LexCompare UCase(val1), UCase(val2), vbTextCompare

WScript.Echo "ANSI values: '9'=" & Asc("9") & ", '_'=" & Asc("_")

Sub LexCompare(string1, string2, compareType)
    result = ""
    Select Case StrComp(string1, string2, compareType)
        Case -1
            result = "is smaller than"
        Case 0
            result = "is identical to"
        Case 1
            result = "is greater than"
    End Select …
Run Code Online (Sandbox Code Playgroud)

vbscript vba qtp hp-uft

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

计算趋势是上升,下降还是稳定

我正在编写一个VBScript,每周发送一封包含客户活动的电子邮件.以下是一些示例数据:

a       b       c       d       e      f        g
2,780   2,667   2,785   1,031   646    2,340    2,410
Run Code Online (Sandbox Code Playgroud)

由于这是电子邮件,我不想要带有趋势线的图表.我只需要一个简单的函数,返回"向上","向下"或"稳定"(虽然我怀疑它将永远是完全稳定的).

我对数学很糟糕,所以我甚至不知道从哪里开始.我已经查看了Python或Excel的一些其他问题,但是没有足够的相似性,或者我没有足够的知识将其应用于VBS.

我的目标就是这样简单:

a       b       c       d       e      f        g        trend
2,780   2,667   2,785   1,031   646    2,340    2,410    ?
Run Code Online (Sandbox Code Playgroud)

如果有一些增量或百分比或其他测量值,我可以显示这将有所帮助.我也可能想忽略异常值.例如,上面的646.我们的一些客户周末不开放.

math vbscript trend

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

Shell.StdOut.ReadAll返回的垃圾字符

这是我的代码

Set objFSO = CreateObject("Scripting.FileSystemObject")

a = "@echo off && " & _
"pushd ""\\xxxxx.local\cfs\Development\Docs\Baseline"" &&" & _
"cls &&" & _
"dir /b /a-d &&" & _
"popd"

Set objShell = CreateObject("WScript.Shell").Exec("%comspec% /c " & a)
execStdOut = objShell.StdOut.ReadAll()
msgbox execStdOut
Run Code Online (Sandbox Code Playgroud)

基本上我试图在网络驱动器上运行Dir命令.它工作正常,但唯一的问题是输出在开头包含一个垃圾字符.不知道为什么?

产量

如果我在批处理文件中运行相同的步骤,则输出正确

在此输入图像描述

vbscript stdout batch-file

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

我可以使用FileSystemObject使用其索引从文件夹中获取单个文件吗?

如果文件夹中只有一个文件,我可以在知道其名称的情况下选择它或者遍历文件夹中的文件吗?

(代码是VBS,但它可以是任何东西,FSO在这里是有趣的部分.)

这不适合我:

dim fso
set fso = CreateObject("Scripting.FileSystemObject")
dim myFolder
Set myFolder = fso.getFolder("E:\test")
Dim myfiles
Set myfiles = myFolder.Files

WScript.Echo myfiles.Item(0).Path
Run Code Online (Sandbox Code Playgroud)

两者都没有WScript.Echo myfiles(0).Path奏效.(测试指数0,1都失败了.)

使用for each来获得一个文件似乎有点过分.此外,我不应该以某种方式迭代一个简单的For循环,而不是For Each?所以必须有索引......我似乎无法找到它们.

vbscript filesystemobject fso

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

如何在ASP中的多行表达式中添加注释到每行的结尾?

有没有办法如何在ASP中使用更长的多行表达式(使用VBScript)向每行的末尾添加注释?我有这样的代码:

    Dim qbsr As New QueryBuilder(conn)
    qbsr.Select = "Items.ItemCode as ItemCode,Items.Description as Descr, " & _ 
    "Items.Class_03 as UnitType, " & _  ' ** Cannot add comment here **
    "Items.Class_04 as UnitPlc, " & _  ' ** Cannot add comment here **
    "Items.Class_05 as UnitArea" ' Comment here works fine
Run Code Online (Sandbox Code Playgroud)

我发现了类似的问题,但所有答案都是关于多行注释而不是在多行表达式的每行末尾添加注释.

vbscript asp-classic

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

如何保存工作簿并处理TITUS(或任何其他文档分类加载项)弹出窗口?

我正在HP UFT 12中创建一个脚本,该脚本针对CSV文件执行网格数据验证,并将结果保存在具有两个工作表的Excel文件中。
我之所以使用Excel,是因为它对用户来说更加清晰,因为它允许单元格格式化,更容易比较数据等等。

我的代码可以在我的机器上工作,但是我的客户端安装了TITUS文档分类加载项,因此,每当他们运行我的脚本时,它都会挂起,因为TITUS弹出消息要求用户在保存时对文档进行分类。该消息未显示给用户,可能是由于引起的objExcel.DisplayAlerts = False,但是脚本没有前进。

以下是我的代码中与该问题相关的部分(出于机密原因,我省略了大部分代码)。

Dim objExcel : Set objExcel = CreateObject("Excel.Application")
Dim objWorkbook : Set objWorkbook = objExcel.Workbooks.Add
objExcel.Visible = False
Dim wsGrid : Set wsGrid = objWorkbook.Worksheets(1)
wsGrid.Name = "Grid Data"
Dim wsExported : Set wsExported = objWorkbook.Worksheets.Add
wsExported.Name = "Exported Data"

' Internal code to perform validation and fill worksheets ...

objExcel.DisplayAlerts = False
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls"    ' This is where it hangs in machines where the add-in is installed
objWorkbook.Close
objWorkbook.Quit
Set …
Run Code Online (Sandbox Code Playgroud)

vbscript excel qtp hp-uft

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

将坐标存储在关联数组中

我正在寻找一种在VBS中存储数据的方法

[ 0 => [posX, posY], 1 => [posX, posY] ]
Run Code Online (Sandbox Code Playgroud)

有点一个关联数组,坐标为值.

vbscript

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

通过拖放操作调用的vbscript中的当前工作目录

当我试图获得我的批处理脚本的提升权限时,我发现了两个相关的SO问题

......这导致了部分解决的问题.出于某种原因,我遇到了在VBS脚本中包含空格的文件路径参数的命令行传递问题,所以我试图将解决方案分成3部分并集中在内部(VBS)步骤,然后通过调用a添加最后一步尽管与VBS脚本位于同一文件夹中,但无法找到该VBS中的批处理.我发现,拖放不是"那么简单" 它使用时的不同.vbs,而不是.bat.exe用作放置目标.

这是我的实际问题:

如果我拖动文件并将其拖放到可执行文件(exe)或批处理文件(bat,cmd)上,则当前工作目录由拖动项目的来源确定.其目录设置为处理它的程序或脚本的工作目录.

如果我将文件放到VBS脚本上,则会有所不同.在Windows 8.1 x64上,C:\Windows\System32即使参数与VBS位于同一文件夹中,我也会观察到它.

我可以简单地使用这样的批处理文件(如拖放中继)

my.vbs %*
Run Code Online (Sandbox Code Playgroud)

获得"正常" .bat行为(drop source指示CWD),但我也想了解它.

这是一个错误还是一个功能?它是否与所有Windows版本一致?


编辑:为显示我如何到达的问题添加背景(在顶部)(+次要更正)

windows vbscript drag-and-drop batch-file working-directory

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

如何在VBScript中使用Replace函数

我不知道为什么这段代码不起作用:

Dim a
a = InputBox("What time do you want?")
If InStr(a, "pm") Then
  (Replace(a, "pm", ""))
  a = a + 12
  c = MsgBox(a, 0, Time)
  WScript.Quit
Else
End If
b = MsgBox(a & form, 0, "L")
Run Code Online (Sandbox Code Playgroud)

每当我尝试启动它时,它会响应:

"错误:预期声明"

是因为Replace声明不正确还是因为脚本的其余部分出现了错误?

vbscript replace

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