标签: vbscript

wscript.sleep在错误的时间发生

我不知道VBScript,但最近我需要编写一个具有SendKeys功能的脚本,而我无法在批处理文件中执行此操作.当我使用该命令在Windows 7机器中从命令提示符运行以下代码时cscript test.vbs,睡眠发生在telnet启动之前.问题可能是命令已执行但结果输出直到睡眠完成后才会显示.我该如何解决这个问题?

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "telnet localhost 25" & vbCr
wscript.sleep 5000
Run Code Online (Sandbox Code Playgroud)

编辑:如果我在启动之前放入一个sleep命令然后单击它必须键入的命令提示符窗口,我可以让我的脚本工作.这样,当脚本暂停时,它会暂停执行,但不会暂停显示命令提示符中的输出.我仍然需要一个命令行解决方案.

vbscript wmi sleep wsh sendkeys

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

FileSystemObject-不支持的文件名字符

我是否可以使用一个函数来转换具有良好文件名的狡猾文件名?

我正在处理大量照片,偶尔我的脚本会停止,因为上传者在文件名中添加了卷曲符号(〜)。我现在也想知道文件名中是否还有其他错误符号,以及如何对其进行转义。

我正在使用VBScript的FileSystem对象遍历这些文件,类似于以下内容:

For Each File In Files
    If InStr(UCase(File.Name), ".JPG") > 0 Then
        '// do stuff
    End If
Next
Run Code Online (Sandbox Code Playgroud)

filesystems vbscript asp-classic

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

将外来字符转换为正常字符

我有一个国际照片网站.当办公室上传来自国外的照片时,字幕和标题有时会有外国字符,例如:

1. François Hollande
2. ValŽrie Trierweiler
Run Code Online (Sandbox Code Playgroud)

并且这些存储在数据库(MySQL - latin1_swedish_ci)中,原样.现在,当用简单的英语搜索没有法语字符的弗朗索瓦时,这些特定的照片不会显示出来.

现在这不仅仅是法国人的问题 - 它也是其他国家.在我提交到我的数据库之前,如何将这些外来字符转换为普通字符,例如:

  1. 弗朗索瓦·奥朗德

vbscript asp-classic

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

递归访问文件夹中的子文件夹文件

我写了这段代码来访问文件夹中的Excel文件:

strPath="C:\Test\"

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder (strPath)
Set objExcel= CreateObject("Excel.Application")
objExcel.Visible= False

For Each objFile In objFolder.Files
 If objFso.GetExtensionName(objFile.Path) = "xls" Then
Run Code Online (Sandbox Code Playgroud)

现在我必须创建一些子文件夹并在其中放入一些.xls文件.

我应该在我的代码中进行哪些修改来搜索主文件夹和所有其他子文件夹中的文件(子文件夹中还有一些文件夹)?

directory vbscript

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

下标超出了vbscript中的范围错误

有人可以看看下面的脚本并告诉我为什么它在vbscript中抛出这个错误下标超出范围错误.在文本文件中有两个条目它正确地写入文件但是它在退出循环时抛出错误所以它从不调用其他函数..我认为它试图运行3次,但文本文件中只有2个条目

The text file is in this format

    Format.css Shared
    Design.css Shared


Dim strInputPath1
Dim txsInput1,txsOutput
Dim FSO
Dim Filename

Set FSO = CreateObject("Scripting.FileSystemObject")
strOutputPath = "C:\txt3.txt"
Set txsOutput = FSO.CreateTextFile(strOutputPath)

Set re = New RegExp
re.Pattern = "\s+"
re.Global  = True

Set f = FSO.OpenTextFile("C:\Users\spadmin\Desktop\Main\combination.txt")
Do Until f.AtEndOfStream
  tokens = Split(Trim(re.Replace(f.ReadLine, " ")))
  extension = Split(tokens(0),".")
  strInputPath1 =  "C:\inetpub\wwwroot\Test\files\" & tokens(1) & "\" & extension(1) & "\" & tokens(0) 
  Set txsInput1 = FSO.OpenTextFile(strInputPath1, 1)
  WScript.Echo strInputPath1
  txsOutput.Writeline txsInput1.ReadAll

Loop …
Run Code Online (Sandbox Code Playgroud)

vbscript

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

在比较vbs中的两个字符串时,Trim函数不会删除字符串末尾的空格

我有一个简单的脚本,它需要两个字符串并进行比较.第一个在末尾有一个空格而第二个没有.

Function compare(str1,str2)
 dim a 
 If strComp(trim(str1),trim(str2))=0 Then 
     msgbox "OK"
     a=1  
 Else
     msgbox "KO" 
     a=0
 End If    

 compare=a

End Function
Run Code Online (Sandbox Code Playgroud)

我用这种方式使用这个函数:

s1=     SUCCESSFULLY CONNECTED
s2=     SUCCESSFULLY CONNECTED
result=compare(s1,s2)
Run Code Online (Sandbox Code Playgroud)

s1和s2之间的区别在于s1以单个空格结束,而s2在末尾没有任何空格.这就是我使用Trim函数忽略该空间的原因.尽管如此,对于s1和s2,我总是在对话框中得到消息"KO".我甚至改变了条件

If trim(str1)=trim(str2) Then
Run Code Online (Sandbox Code Playgroud)

但弹出窗口仍然返回"KO".这是一个美好的情况!

拜托,我已经厌倦了,希望你能帮助理解这种情况.先感谢您

vbscript spaces trim

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

VBScript从txt文件和列表中读取多个文件名,这些文件名在目录中不存在

我是VB脚本的新手,我试图找到一种方法:

  1. 读取在特定文本文件中写为文本行的文件名列表.
  2. 检查这些文件是否与脚本位于同一目录中.
  3. 将不存在的文件的名称写入输出文件(missing.txt)

根据我的研究,似乎一个好的方法是使用FSO并读取整个文本文件,创建一个数组,然后循环检查文件是否存在于目录中,然后记录到"missing.txt",如果它没有.

但是,这样做,不会出现类型不匹配,因为.txt中的文件名是一个字符串,目录中的文件本身就是对象吗?

我该如何比较?我可以从概念上理解这一点,但我不知道从哪里开始使用语法.

谢谢您的帮助.

arrays vbscript type-mismatch fso

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

VBScript将所有文件从一个文件夹移动到另一个文件夹

例如从.\\10.10.10.10\Share\*\\10.10.10.20\Share\*.

有人可以帮我一个例子或指出我正确的方向吗?

尽可能简单是好的.

vbscript

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

为什么说不循环呢?

好的,所以我被赋予了一个猜谜游戏的任务.我已经完成并做好了准备,唯一的问题是当我尝试运行它时说:

Windows脚本宿主

Dim MAX, MIN
MAX = 99
MIN = 0
Randomize

Number = (Int((MAX-MIN+1)*Rnd+MIN))

Do Until Answer = Number
Answer = InputBox("Guess A Number Between:" & vbNewLine & "0 And 100", "Guessing Game:")
If Answer = "" Then
    Quit = MsgBox("Do You Wish To Quit?",vbYesNo,"Quit:")
    If Quit = vbYes Then
        WScript.Quit 0
    End If
Else If Answer = Number Then
    MsgBox("Congrats You Got It!")
Else
    MsgBox("Nope, Try Again...")
End If
Loop
Run Code Online (Sandbox Code Playgroud)

vbscript

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

读取和写入INI文件

我一直在玩下面的脚本,以便能够读取我的HTA使用的设置(创建一个游戏启动器).

这是我目前的HTA:

http://pastebin.com/skTgqs5X

它不太有效,它抱怨WScript所需的对象.虽然我理解Echo在HTA中不会像那样工作但我修改代码时遇到了麻烦,所以它会起作用.即使只删除所有Echo引用,它仍然存在objOrgIni以下代码的第200行的问题(WScript删除了引用):

http://pastebin.com/pGjv4Gh1

我甚至不需要那种级别的错误检查,因为INI将存在等等,我只需要一种简单的方法来读取和写入我的脚本中的INI.你们可以帮助我实现这一目标的任何帮助都会很棒,但对我来说这对我来说有点先进,但是我想要解释为什么会失败.

vbscript ini hta

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

标签 统计

vbscript ×10

asp-classic ×2

arrays ×1

directory ×1

filesystems ×1

fso ×1

hta ×1

ini ×1

sendkeys ×1

sleep ×1

spaces ×1

trim ×1

type-mismatch ×1

wmi ×1

wsh ×1