窄口牛 发表于 2018-9-14 17:14:46

bat转vbs,近似于静默执行bat

@echo off
set route=%cd%
set ravel=
set /p ravel=    请输入要转化的批处理:
set "ravel=%ravel:"=%"
if exist "%ravel%" goto go
:go
for /f "delims=*" %%a in ("%ravel%") do (
cd /d "%%~dpa"
set file=%%~na.vbs
set ffile=%%~nxa
)
copy%ffile% bak%ffile%
for /f "delims=" %%a in ('type %ffile%') do (
set "str=%%a"
setlocal enabledelayedexpansion
echo !str:^"=^"^"!>>temp
endlocal
)
move /y temp %ffile%>nul
echo set fso = createobject("scripting.filesystemobject")>>temp.vbs
echo ' 读取文件>>temp.vbs
echo set stream = fso.opentextfile("%ffile%",1)>>temp.vbs
echo content = stream.readall()>>temp.vbs
echo call stream.close()>>temp.vbs
echo ' 替换字符串>>temp.vbs
echo content = replace(content,"*","♀")>>temp.vbs
echo ' 保存文件>>temp.vbs
echo set stream = fso.opentextfile("%ffile%",2)>>temp.vbs
echo call stream.write(content)>>temp.vbs
echo call stream.close()>>temp.vbs
start /w wscript temp.vbs
del temp.vbs /q
echo set fso=createobject("scripting.filesystemobject")>>%File%
echo set ws=CreateObject("wscript.shell")>>%File%
echo set fw=fso.createtextfile("1.bat",2)>>%File%
for /f "delims=*" %%a in ('type %ffile%') do (
echo fw.writeline("%%a"♂)>>%File%
echo fw.close>>%File%
echo ws.run "cmd /c 1.bat",vbhide,True>>%File%
echo fso.deleteFile "1.bat">>%File%
)
move /y bak%ffile% %ffile%
for /f "delims=" %%a in (%File%) do (
set "str=%%a"
setlocal enabledelayedexpansion
echo !str:♀=*!>>temp
endlocal
)
move /y temp %File%>nul
for /f "delims=" %%a in (%File%) do (
set "str=%%a"
setlocal enabledelayedexpansion
echo !str:♂=^)!>>temp
endlocal
)
move /y temp %File%>nul

xujinbiao 发表于 2018-9-14 17:27:49

谢谢分享,支持下载

xman00 发表于 2018-9-14 17:37:05

还得输入?复杂了点呢
杂操作?

窄口牛 发表于 2018-9-14 17:49:29

扔到打开的窗口里

nttwqz 发表于 2018-9-14 20:39:03

哇 楼主会写vbs

窄口牛 发表于 2018-9-14 20:42:47

拼凑的本事还是有的。我这个里面有个问题,就是那个右括号不知道为什么each不出来,没办法绕了个圈。

guies 发表于 2018-9-15 14:37:54

本帖最后由 guies 于 2018-9-15 14:41 编辑

生成的 1.bat 在 temp 下比較好,當前文件夾下當前使用者不一定有寫入的權限,另外一點就是不好看。
還有一點就是 vbs 無法按鼠標右鍵 以系統管理員身份執行

窄口牛 发表于 2018-9-15 14:55:40

vbs权限没有bat权限高,但是bat可以自己提权。生成的文件确实是去temp比较好。

kingshui 发表于 2018-9-15 15:20:45

直接用mshta那招,我习惯。

promrhxq 发表于 2018-9-15 15:55:06

学习了,bat转vbs
页: [1] 2
查看完整版本: bat转vbs,近似于静默执行bat