无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6746|回复: 20
打印 上一主题 下一主题

vbs 隐藏运行,支持附带 带空格的参数,可以在带空格的目录运行。

[复制链接]
1#
发表于 2018-4-21 11:40:14 | 显示全部楼层
本帖最后由 slore 于 2018-4-21 11:55 编辑

'---------------------------------------------------
Set objShell = CreateObject("WSCript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments

pathx = objFSO.GetFile(WScript.scriptFullName).ParentFolder.Path

Sub RunHide()
   
Dim self, args, i
    self = """" & WScript.scriptFullName  & """"
    args = " "
    For i = 1 To objArgs.Count
        args = args & """" & objArgs(i) & """ "
    Next
    If
args = " " Then args = " -dummy"
    objShell.Run "cscript.exe " & self & args, 0, False
   
WSCript.Quit(0)
End Sub

If
objArgs.Count = 0 Then
   
RunHide
ElseIf objArgs(0) = "-hide" Then
   
RunHide
End If

Set
cmd = objShell.exec("cmd.exe")
cmd.stdin.WriteLine "dir c:\ /b /s /a-d > " & Chr(34) & pathx & Chr(34) & "\c.txt"
cmd.stdin.WriteLine "dir c:\*.dll /b /s /a-d > " & Chr(34) & pathx & Chr(34) & "\dll.txt"
cmd.stdin.WriteLine "exit"
Do Until cmd.Status = 1
    WScript.sleep 100
Loop
MsgBox
"脚本运行完毕"


用第一个参数区分,不需要临时文件。

点评

按照 你的方法 修改如下,把 -hide 放到最后一个参数,唯一需要注意的就是 主代码中涉及引用 参数个数的时候,需要 -1  详情 回复 发表于 2018-4-21 16:39
如果 首次运行 就是 cscript 调用呢?就不能 实现隐藏了。  详情 回复 发表于 2018-4-21 11:44
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-6 06:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表