标签: vbscript

在安全模式下运行进程 RunOnce?

我需要在安全模式下重新启动后运行一次进程,该进程是这样​​的:

\n\n
bcdedit.exe /import "%WINDIR%\\Restore BootLoader Settings.bcd"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试使用 RunOnce 密钥,但我注意到密钥不会在安全模式启动下运行,所以...是否存在其他方式在安全模式启动下运行该死的进程?

\n\n

更明确地说,这就是我想要做的:

\n\n
    \n
  1. 在正常模式或任何其他模式下,我导出所有引导加载程序条目的当前设置。

  2. \n
  3. 然后我更改当前引导加载程序条目的一些参数,然后重置电脑。

  4. \n
  5. 这就是问题所在,例如,当在安全模式下再次登录 Windows 时,我需要在新更改之前恢复(导入)设置,以便在重置计算机时不再以安全模式启动。

  6. \n
\n\n

我怎样才能做到这一点?

\n\n

这是我的vbs脚本:

\n\n
\' Restart in Safe Mode\n\' By Elektro H@cker\n\nIf Not Msgbox( _\n    "\xc2\xbfSeguro que quieres reiniciar el equipo?", _\n    4 or 48, _\n    "Reiniciar en Modo Seguro..." _\n    ) = vbNo _\nThen\n\nSet wshShell = WScript.CreateObject("WScript.Shell")\n\nTempFile = """" & wshShell.ExpandEnvironmentStrings("%WINDIR%") & "\\" & "Bcdedit settings.bcd" & """"\n\nwshShell.Run "bcdedit /export " & TempFile, 0, True\nwshShell.Run …
Run Code Online (Sandbox Code Playgroud)

windows console vbscript runonce bcdedit

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

你能在vbs中获取pc用户名吗?

有没有办法在 Visual Basic 中找到 PC 用户(C:\User\"here")。我们获取之后,将其保存为字符串即可。

我知道答案可能有点明显,但我不知道如何做到这一点

vbscript

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

如何确定可执行文件的安装位置?

在我的机器上,Ghostscript (GS) 安装在:

C:\Program Files\gs\gs9.01\bin\gswin32.exe
Run Code Online (Sandbox Code Playgroud)

但在另一台机器上,可能安装了不同的版本:

C:\Program Files\gs\gs7.52\bin\gswin32.exe
Run Code Online (Sandbox Code Playgroud)

或者甚至在完全不同的子文件夹中:

C:\Program Files\ghost\script\gs8.00\bin\gswin32.exe
Run Code Online (Sandbox Code Playgroud)

gswin32.exe我试图找到一个 VBS 函数来确定在当前计算机上可以找到的路径,首先尝试仅使用不同的子文件夹\gs\

Set oShell = createObject("WScript.Shell")
objShell.Run("C:\Program Files\gs\*\bin\gswin32.exe")
Run Code Online (Sandbox Code Playgroud)

然而,这是行不通的。路径中也没有任何其他通配符。我现在怀疑这是否是正确的方法,所以我的问题是:

如何确定可执行文件 gswin32.exe 的安装位置?

vbscript vba

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

单引号之间的正则表达式数字

我有一个像这样的字符串"f_details(\'277095\');">。我只需要得到这个277095部分。我一直在尝试 的变体strPattern = "\'[0-9]\'+",但这要么什么也没找到,要么找到错误的东西。

\n\n

尽管我面前有一张备忘单,但我不懂正则表达式。已经花了一个小时尝试不同的事情。这个正则表达式会是什么样子?

\n\n

这是我用来抓取该网站并获取数据的代码:

\n\n
Set objWshShell = Wscript.CreateObject("Wscript.Shell")\nSet IE = CreateObject("internetexplorer.application")\nSet fso = CreateObject("Scripting.FileSystemObject")\n\non error resume next\nFor i=1 To 77 \'77 Counties\n\nIf i=77 Then Exit For\n\nIE.Visible = True\nIE.Navigate "https://lic.ok.gov/PublicPortal/OREC/FindAssociateEntity.jsp"\nDo Until IE.ReadyState = 4: WScript.sleep 15: Loop\n\nDo Until IE.Document.ReadyState = "complete": WScript.sleep 10: Loop\nIE.Document.getElementsByTagName("select")("AddrCountyCode").Value = i\n\nDo Until IE.Document.ReadyState = "complete": WScript.sleep 10: Loop\nFor Each btn In IE.Document.getElementsByTagName("input")\nIf btn.name = "btnSearch" Then btn.Click()\nNEXT\n\nstrPattern = "\'(\\d+)\'"\n\nstrTestString = ie.document.body.innerhtml\n\narrAllMatches = fGetMatches(strPattern, strTestString)\n\nIf UBound(arrAllMatches) …
Run Code Online (Sandbox Code Playgroud)

regex vbscript

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

将 VBA 转换为 VBScript 以删除列中的重复项

我在 Excel 文件中有一个工作表,我想在其中删除第 1 列中的重复值。在 Excel 中,当您在“数据”下单击,然后在第一列名为“Code”的列上删除重复项时,它具有此功能。我正在尝试将其转换为 VBScript,但不确定如何。我尝试录制一个宏来获取 VBA 语法,但它与 VBScript 不同。我从录制的宏中得到的代码是

Sub Macro1()
    Columns("A:A").Select
    ActiveSheet.Range("$A$1:$K$523").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Run Code Online (Sandbox Code Playgroud)

vbscript excel

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

如何检查 vbscript 是否调用了参数?

我尝试使用 if 语句,但出现错误,Subscript out of range我知道为什么出现错误。如何检查 vbscript 脚本是否调用了参数。

if args.count > -1 then
  exec(args(0)) 'exec is a function that I defined. I know this is working.
  wscript.quit
end if
Run Code Online (Sandbox Code Playgroud)

arrays vbscript arguments if-statement

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

如何删除字符串中的前 3 个字符

我有一个程序将字符串打印到记事本文件中,输出是随机的:

#'f7ruhigbergbn

但是我想从粘贴的结果中删除前 3 个字符,我该怎么做?

myString = "#'f"
result = workings - myString
Run Code Online (Sandbox Code Playgroud)

这是行不通的,记住前 3 个字符总是#'f

有什么想法吗?谢谢

vbscript

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

用于检测 Windows 系统区域设置是否使用 UTF-8 代码页的脚本?

在最新版本的 Win10 上,可以将活动代码页 (ACP) 设置为 UTF-8 代码页。正如此处所讨论的,可以将系统区域设置(用于在 Windows API 的“A”版本和“W”版本之间进行映射)设置为使用 UTF-8 代码页。

脚本如何检测 UTF-8 代码页是否正在使用?

正如此处此处所讨论的,通常可以使用 WMI 来获取系统代码页 ID:

For Each os In wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")
    cs = os.CodeSet
Next
Run Code Online (Sandbox Code Playgroud)

当我在 Win10 上尝试该操作时,设置对非 unicode 程序使用美式英语的“beta”utf-8 支持,WMI 继续报告代码页为 1252。尽管情况显然并非如此(代码页 1252 有128 处有一个代码点,但 49800 处没有代码点:UTF-8 49800 处有一个代码点,128 处没有代码点)。

脚本如何检测实际系统区域设置是否使用 UTF-8 代码页?

vbscript powershell wmi utf-8 windows-10

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

使用VBScript和";"将文件文件转换为数组 分隔符

我有一个相当大的数据列表,每个元素包含5个属性.元素由";"分隔.我想在VBScript中将元素读入数组.看起来很简单,可以在大G上搜索这个,但是所有明显的例子都假设您想逐行读取然后将内容拆分为";"上的一行.字符.我不在乎有多少行,直到";" 我只想让每个元素的所有信息(在本例中为5个属性字段)都在一个数组元素中.

源文件如下所示:

element1 property1 = blah
element1 property2 = blah
element1 property3 = blah
element1 property4 = blah
element1 property5 = blah
;element2 property1 = blah
element2 property2 = blah
element2 property3 = blah
element2 property4 = blah
element2 property5 = blah
;element3 property1 = blah
element3 property2 = blah
element3 property3 = blah
element3 property4 = blah
element3 property5 = blah

我想要发生的是我的VBScript数组(0)

"element1 property1 = blah
element1 property2 = blah
element1 property3 = blah
element1 property4 = blah …

vbscript delimited-text

0
推荐指数
1
解决办法
8740
查看次数

VBScript 800a005e错误

我在ASP应用程序中使用旧的VBScript.尝试使用Replace(wholeText,textToSearch,textToReplace)函数搜索和替换字符串,但是我收到以下错误:

Microsoft VBScript runtime  error '800a005e'

Invalid use of Null: 'Replace'

/instance/inst_spam_gen_4.asp, line 25 
Run Code Online (Sandbox Code Playgroud)

这是我的功能:

Function cleanUpText(txt)

        txt = Replace(txt, "“", """")
        txt = Replace(txt, "”", """")
        txt = Replace(txt, "’", "'")
        txt = Replace(txt, "®", "®")

    cleanUpText = txt
End Function
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

谢谢

vbscript replace

0
推荐指数
1
解决办法
4402
查看次数