无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1735|回复: 27
打印 上一主题 下一主题

[求助] 全盘搜索到的批处理里边不可以有vbs吗

[复制链接]
跳转到指定楼层
1#
发表于 2023-9-20 18:34:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wenbieba 于 2023-9-20 19:37 编辑

全盘搜索到指定批处理并运行,但搜索到的批处理命令里边不可以调用VBS

如搜索到的SetupOOBE.cmd调用OOBE.vbs没任何相应,用鼠标打开SetupOOBE.vbs会正常运行

SetupOOBE.bat同时也用命令写为vbs
SetupOOBE.bat脚本:
@echo off
start %~dp0OOBE.vbs


SetupOOBE.vbs脚本:
CreateObject("WScript.Shell").Run "cmd /c SetupOOBE.bat",0



麻烦无忧大神看看问题出在什么地方,难道批处理不允许多次调用,不允许自动调用vbs,只能手动调用vbs
17#
发表于 2023-10-29 13:31:03 | 只看该作者
谢谢分享
回复

使用道具 举报

16#
发表于 2023-9-21 12:25:54 | 只看该作者
wenbieba 发表于 2023-9-21 11:53
加上之后不运行了

If WScript.Arguments.Count  1 Then WScript.Quit 1

在前面只加这一段试试:

  1. Set WshShell = WScript.CreateObject("WScript.Shell")
  2. If WScript.Arguments.Length = 0 Then
  3.   Set ObjShell = CreateObject("Shell.Application")
  4.   ObjShell.ShellExecute"wscript.exe" _
  5.     ,"""" & WScript.ScriptFullName &""" RunAsAdministrator", ,"runas", 1
  6.   WScript.Quit
  7. End if
复制代码
回复

使用道具 举报

15#
 楼主| 发表于 2023-9-21 11:54:16 | 只看该作者

加上之后不运行了

If WScript.Arguments.Count <> 1 Then WScript.Quit 1
RunAsAdmin
Main

Sub RunAsAdmin()
    Set Shell = CreateObject("WScript.Shell")
    Set Env = Shell.Environment("VOLATILE")
    If Shell.Run("%ComSpec% /C""NET FILE""", 0, True) <> 0 Then
        Env("CurrentDirectory") = Shell.CurrentDirectory
        ArgsList =""
        For i = 1 To WScript.Arguments.Count
            ArgsList = ArgsList &"""""" & WScript.Arguments(i - 1)
        Next
        CreateObject("Shell.Application").ShellExecute WScript.FullName,"""" & WScript.ScriptFullName & ArgsList &"""", ,"runas", 5
        WScript.Sleep 100
        Env.Remove("CurrentDirectory")
        WScript.Quit
    End If
    If Env("CurrentDi
回复

使用道具 举报

14#
 楼主| 发表于 2023-9-21 11:53:52 | 只看该作者

加上之后不运行了

If WScript.Arguments.Count <> 1 Then WScript.Quit 1
RunAsAdmin
Main

Sub RunAsAdmin()
    Set Shell = CreateObject("WScript.Shell")
    Set Env = Shell.Environment("VOLATILE")
    If Shell.Run("%ComSpec% /C""NET FILE""", 0, True) <> 0 Then
        Env("CurrentDirectory") = Shell.CurrentDirectory
        ArgsList =""
        For i = 1 To WScript.Arguments.Count
            ArgsList = ArgsList &"""""" & WScript.Arguments(i - 1)
        Next
        CreateObject("Shell.Application").ShellExecute WScript.FullName,"""" & WScript.ScriptFullName & ArgsList &"""", ,"runas", 5
        WScript.Sleep 100
        Env.Remove("CurrentDirectory")
        WScript.Quit
    End If
    If Env("CurrentDi
回复

使用道具 举报

13#
 楼主| 发表于 2023-9-21 11:53:30 | 只看该作者

加上之后不运行了

If WScript.Arguments.Count <> 1 Then WScript.Quit 1
RunAsAdmin
Main

Sub RunAsAdmin()
    Set Shell = CreateObject("WScript.Shell")
    Set Env = Shell.Environment("VOLATILE")
    If Shell.Run("%ComSpec% /C""NET FILE""", 0, True) <> 0 Then
        Env("CurrentDirectory") = Shell.CurrentDirectory
        ArgsList =""
        For i = 1 To WScript.Arguments.Count
            ArgsList = ArgsList &"""""" & WScript.Arguments(i - 1)
        Next
        CreateObject("Shell.Application").ShellExecute WScript.FullName,"""" & WScript.ScriptFullName & ArgsList &"""", ,"runas", 5
        WScript.Sleep 100
        Env.Remove("CurrentDirectory")
        WScript.Quit
    End If
    If Env("CurrentDi
回复

使用道具 举报

12#
 楼主| 发表于 2023-9-21 11:53:18 | 只看该作者

加上之后不运行了

If WScript.Arguments.Count <> 1 Then WScript.Quit 1
RunAsAdmin
Main

Sub RunAsAdmin()
    Set Shell = CreateObject("WScript.Shell")
    Set Env = Shell.Environment("VOLATILE")
    If Shell.Run("%ComSpec% /C""NET FILE""", 0, True) <> 0 Then
        Env("CurrentDirectory") = Shell.CurrentDirectory
        ArgsList =""
        For i = 1 To WScript.Arguments.Count
            ArgsList = ArgsList &"""""" & WScript.Arguments(i - 1)
        Next
        CreateObject("Shell.Application").ShellExecute WScript.FullName,"""" & WScript.ScriptFullName & ArgsList &"""", ,"runas", 5
        WScript.Sleep 100
        Env.Remove("CurrentDirectory")
        WScript.Quit
    End If
    If Env("CurrentDi

点评

在前面只加这一段试试:  详情 回复 发表于 2023-9-21 12:25
回复

使用道具 举报

11#
 楼主| 发表于 2023-9-21 11:48:09 | 只看该作者

谢谢大师
回复

使用道具 举报

10#
发表于 2023-9-21 11:40:16 | 只看该作者
wenbieba 发表于 2023-9-21 10:58
vbs头上加上什么命令,让运行指定批处理以管理员身份运行

这种?

  1. If WScript.Arguments.Count <> 1 Then WScript.Quit 1
  2. RunAsAdmin
  3. Main

  4. Sub RunAsAdmin()
  5.     Set Shell = CreateObject("WScript.Shell")
  6.     Set Env = Shell.Environment("VOLATILE")
  7.     If Shell.Run("%ComSpec% /C""NET FILE""", 0, True) <> 0 Then
  8.         Env("CurrentDirectory") = Shell.CurrentDirectory
  9.         ArgsList =""
  10.         For i = 1 To WScript.Arguments.Count
  11.             ArgsList = ArgsList &"""""" & WScript.Arguments(i - 1)
  12.         Next
  13.         CreateObject("Shell.Application").ShellExecute WScript.FullName,"""" & WScript.ScriptFullName & ArgsList &"""", ,"runas", 5
  14.         WScript.Sleep 100
  15.         Env.Remove("CurrentDirectory")
  16.         WScript.Quit
  17.     End If
  18.     If Env("CurrentDirectory") <>"" Then Shell.CurrentDirectory = Env("CurrentDirectory")
  19. End Sub

  20. Sub Main()
  21.     '你的代码放在这!
  22. End Sub
复制代码

点评

不好意思提示内部错误,导致多次发送  发表于 2023-9-21 11:56
加上之后不运行了 If WScript.Arguments.Count 1 Then WScript.Quit 1 RunAsAdmin Main Sub RunAsAdmin() Set Shell = CreateObject("WScript.Shell") Set Env = Shell.Environment("VOLATILE")  详情 回复 发表于 2023-9-21 11:54
加上之后不运行了 If WScript.Arguments.Count 1 Then WScript.Quit 1 RunAsAdmin Main Sub RunAsAdmin() Set Shell = CreateObject("WScript.Shell") Set Env = Shell.Environment("VOLATILE")  详情 回复 发表于 2023-9-21 11:53
加上之后不运行了 If WScript.Arguments.Count 1 Then WScript.Quit 1 RunAsAdmin Main Sub RunAsAdmin() Set Shell = CreateObject("WScript.Shell") Set Env = Shell.Environment("VOLATILE")  详情 回复 发表于 2023-9-21 11:53
加上之后不运行了 If WScript.Arguments.Count 1 Then WScript.Quit 1 RunAsAdmin Main Sub RunAsAdmin() Set Shell = CreateObject("WScript.Shell") Set Env = Shell.Environment("VOLATILE")  详情 回复 发表于 2023-9-21 11:53
回复

使用道具 举报

9#
 楼主| 发表于 2023-9-21 10:58:33 | 只看该作者

vbs头上加上什么命令,让运行指定批处理以管理员身份运行

点评

这种?  详情 回复 发表于 2023-9-21 11:40
回复

使用道具 举报

8#
发表于 2023-9-21 08:10:34 | 只看该作者
wenbieba 发表于 2023-9-20 22:13
已经可以运行了,不知在vbs头加上什么能使vbs调用的批处理以管理员身份运行,如果在调用的批处理里加以管 ...

可以有vbs

点评

vbs头上加上什么命令,让运行指定批处理以管理员身份运行  详情 回复 发表于 2023-9-21 10:58
回复

使用道具 举报

7#
发表于 2023-9-20 22:21:11 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
 楼主| 发表于 2023-9-20 22:13:19 | 只看该作者
szwp 发表于 2023-9-20 21:59
bat写了路径,vbs没写,让vbs显示个对话框就知道有没运行

已经可以运行了,不知在vbs头加上什么能使vbs调用的批处理以管理员身份运行,如果在调用的批处理里加以管理员身份运行代码,用vbs调用该批处理的vbs会出现界面,去掉不出现界面达到隐藏,古想让vbs完成以管理员身份运行指定的bat

点评

可以有vbs  详情 回复 发表于 2023-9-21 08:10
回复

使用道具 举报

5#
 楼主| 发表于 2023-9-20 22:06:01 | 只看该作者
wjgyz740526 发表于 2023-9-20 21:59
你SetupOOBE.vbs脚本里调用的是SetupOOBE.bat,然后SetupOOBE.bat调用的是SetupOOBE.vbs?你是要干嘛啊?互 ...

SetupOOBE.bat调用OOBE.vbs,OOBE.vbs等同于OOBE.bat
回复

使用道具 举报

4#
发表于 2023-9-20 21:59:46 来自手机 | 只看该作者
bat写了路径,vbs没写,让vbs显示个对话框就知道有没运行

点评

已经可以运行了,不知在vbs头加上什么能使vbs调用的批处理以管理员身份运行,如果在调用的批处理里加以管理员身份运行代码,用vbs调用该批处理的vbs会出现界面,去掉不出现界面达到隐藏,古想让vbs完成以管理员身份  详情 回复 发表于 2023-9-20 22:13
回复

使用道具 举报

3#
发表于 2023-9-20 21:59:23 来自手机 | 只看该作者
你SetupOOBE.vbs脚本里调用的是SetupOOBE.bat,然后SetupOOBE.bat调用的是SetupOOBE.vbs?你是要干嘛啊?互相循环调用??

点评

SetupOOBE.bat调用OOBE.vbs,OOBE.vbs等同于OOBE.bat  详情 回复 发表于 2023-9-20 22:06
回复

使用道具 举报

2#
发表于 2023-9-20 20:09:18 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-1-11 05:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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