蘇文
【摘要】
在藍(lán)鯨作業(yè)平臺(tái)中,在Windows平臺(tái)上,目前僅支持bat腳本和python腳本(由于需要安裝python運(yùn)行環(huán)境,Windows平臺(tái)上很少使用)。
而在Windows平臺(tái)上,使用比較多的主要是vbs和PowerShell、bat三種腳本,前兩種腳本并不能直接在藍(lán)鯨平臺(tái)上使用,如果需要在藍(lán)鯨上使用之前已經(jīng)編寫好的vbs和PowerShell腳本,就需要將其轉(zhuǎn)化為bat腳本才能執(zhí)行。下面將介紹將PowerShell和VBS腳本轉(zhuǎn)化為bat腳本的方法。
【正文】
@echo off set "tmpps=temp.ps1" powershell.exe -noprofile Set-ExecutionPolicy Unrestricted more +8 "%~f0" >"%tmpps%" powershell.exe "%tmpps%" pause goto :eof
Get-Host
remove-item $MyInvocation.MyCommand.Path -force |
PowerShell腳本轉(zhuǎn)化為bat腳本:
上述bat腳本中,通過將PowerShell腳本的內(nèi)容輸出到臨時(shí)的ps1腳本中,然后調(diào)用PowerShell腳本執(zhí)行引擎執(zhí)行臨時(shí)ps1腳本,并在執(zhí)行完成后刪除臨時(shí)腳本,從而實(shí)現(xiàn)PowerShell腳本轉(zhuǎn)化為bat腳本。
將上述bat腳本中的紅色粗體部分的腳本內(nèi)容替換為需要執(zhí)行的PowerShell腳本內(nèi)容即可。
同理可以得出VBS腳本轉(zhuǎn)bat腳本如下:
@echo off set "tmpvbs=temp.vbs" more +7 "%~f0" >"%tmpvbs%" cscript.exe "%tmpvbs%" pause goto :eof
strComputer = "." Set wbemServices = Getobject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_DiskPartition") For Each wbemObject In wbemObjectSet WScript.Echo "Disk: " & wbemObject.DiskIndex WScript.Echo "Partition: " & wbemObject.Index WScript.Echo "Size: " & wbemObject.Size Next
Set fso =CreateObject("Scripting.Filesystemobject") fso.DeleteFile(WScript.ScriptFullName) |
上述bat腳本中,通過將VBS腳本的內(nèi)容輸出到臨時(shí)的VBS腳本中,然后調(diào)用VBS腳本執(zhí)行引擎(cscript.exe)執(zhí)行臨時(shí)VBS腳本,并在執(zhí)行完成后刪除臨時(shí)腳本,從而實(shí)現(xiàn)VBS腳本轉(zhuǎn)化為bat腳本。
將上述bat腳本中的紅色粗體部分的腳本內(nèi)容替換為需要執(zhí)行的VBS腳本內(nèi)容即可。
另外,利用bat和VBS腳本的特性,可以通過VBS腳本引擎直接執(zhí)行整個(gè)bat腳本文件的內(nèi)容,通過On Error Resume Next可以忽略不能識(shí)別的bat腳本的內(nèi)容,從而實(shí)現(xiàn)VBS腳本轉(zhuǎn)化為bat腳本。如下:
:On Error Resume Next Sub bat echo off & cls
cscript.exe -e:vbs "%~f0" Exit Sub End Sub
strComputer = "." Set wbemServices = Getobject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_DiskPartition") For Each wbemObject In wbemObjectSet WScript.Echo "Disk: " & wbemObject.DiskIndex WScript.Echo "Partition: " & wbemObject.Index WScript.Echo "Size: " & wbemObject.Size Next |
將上述bat腳本中的紅色粗體部分的腳本內(nèi)容替換為需要執(zhí)行的VBS腳本內(nèi)容即可。
聯(lián)系客服