首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >该批处理更改vbs代码,使得vbs无法使用它

该批处理更改vbs代码,使得vbs无法使用它
EN

Stack Overflow用户
提问于 2013-02-18 06:21:06
回答 2查看 479关注 0票数 2

该批处理改变vbs代码,使得vbs无法使用它。我该如何解决这个问题?

批次编码:

代码语言:javascript
复制
echo Const HIGH = 128 >> prio.vbs
echo strComputer = "." >> prio.vbs
echo Set objWMIService = GetObject("winmgmts:" _ >> prio.vbs
echo    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") >> prio.vbs
echo Set colProcesses = objWMIService.ExecQuery _ >> prio.vbs
echo    ("Select * from Win32_Process Where Name = 'file.exe'") >> prio.vbs
echo For Each objProcess in colProcesses >> prio.vbs
echo    objProcess.SetPriority(HIGH)  >> prio.vbs
echo Next >> prio.vbs

VBS原始值:

代码语言:javascript
复制
Const HIGH = 128
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'file.exe'")
For Each objProcess in colProcesses
    objProcess.SetPriority(HIGH) 
Next

VBS之后:

代码语言:javascript
复制
Const HIGH = 128 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
Set colProcesses = objWMIService.ExecQuery _ 
   ("Select * from Win32_Process Where Name = 'file.exe'") 
For Each objProcess in colProcesses 
   objProcess.SetPriority(HIGH)  
Next

请帮帮忙

EN

回答 2

Stack Overflow用户

发布于 2013-02-18 07:09:44

CMD (命令链)中,&字符具有特殊的含义,因此您必须对它们进行转义才能获得文字&符号:

代码语言:javascript
复制
echo    ^& "{impersonationLevel=impersonate}!\\" ^& strComputer ^& "\root\cimv2") >> prio.vbs

对于右括号')‘和'<','>’也是如此

票数 3
EN

Stack Overflow用户

发布于 2019-12-29 05:19:37

你不需要创建另一个文件,而且,如果你可以用bat混合格式保存你的vbs代码,也不需要任何转义:

代码语言:javascript
复制
<!-- :
@echo off && mode 050,03 && title <nul && title .\%~nx0 
for /f ^tokens^=* %%i in ('%__APPDIR__%wScript.exe "%~dpnx0?.wsf" ^& cls')do exit /b 2>nul >nul
--> <job> <script language = "vbscript">Const HIGH = 128 : strComputer = ".": Set objWMIService = GetObject("winmgmts:" &_
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2"): Set colProcesses = objWMIService.ExecQuery ("Select *"&_
"from Win32_Process Where Name = 'file.exe'"): For Each objProcess in colProcesses: objProcess.SetPriority(HIGH): Next </script></job>

所以,不需要任何转义,只需在命令行中执行或单击!

关于布局:

代码语言:javascript
复制
<!-- :
@echo off && mode 050,03 && title <nul && title .\%~nx0 
for /f ^tokens^=* %%i in ('%__APPDIR__%wScript.exe "%~dpnx0?.wsf" ^& cls')do exit /b 2>nul >nul
--> <job> <script language = "vbscript">

:: your vbs code here ::

</script></job>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14926767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档