PowerShell到批处理脚本

PowerShell到批处理脚本,powershell,batch-file,Powershell,Batch File,您能帮我将下面的PowerShell脚本转换为批处理文件吗?我有系统,他们没有PowerShell。请帮忙 $inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances 'Host Name: '+$env:COMPUTERNAME foreach ($i in $inst) { 'SQL Server Instance Name: '+$i $p = (Get-Ite

您能帮我将下面的PowerShell脚本转换为批处理文件吗?我有系统,他们没有PowerShell。请帮忙

$inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
'Host Name: '+$env:COMPUTERNAME
foreach ($i in $inst)
{
'SQL Server Instance Name: '+$i
 $p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version
}
下面的转换

@echo off 
echo %COMPUTERNAME%
setlocal enableDelayedExpansion
for /f "skip=2 tokens=1,3 delims= " %%S in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"') do ( 
SET "COREEDITION=%%~S" 
SET "COREVERSION=%%~T"
SET "KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\!COREVERSION!\Setup" 
SET "VALUE_NAME=Edition"
echo Instance Name : !COREVERSION!  
rem echo EDITION 
for /f "skip=2 tokens=3 delims= " %%E in ('reg query "!KEY_NAME!" /v !VALUE_NAME!') do echo Edition: %%E 
SET VALUES_NAME=Version 
rem echo VERSION
for /f "skip=2 tokens=3 delims= " %%V in ('reg query "!KEY_NAME!" /v !VALUES_NAME!') do echo Version: %%V 
)

endlocal
如果您有REG.EXE(windows的家庭版没有REG.EXE)

更新

@echo off 
setlocal enableDelayedExpansion
for /f "skip=2 tokens=1,3 delims= " %%S in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"') do ( 
 SET "COREEDITION=%%~S" 
 SET "COREVERSION=%%~T"
 SET "KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\!COREVERSION!\Setup" 
 SET "VALUE_NAME=Edition"
 rem echo EDITION 
 for /f "skip=2 tokens=3 delims= " %%E in ('reg query "!KEY_NAME!" /v !VALUE_NAME!') do echo edition: %%E 
 SET VALUES_NAME=Version 
 rem echo VERSION
 for /f "skip=2 tokens=3 delims= " %%V in ('reg query "!KEY_NAME!" /v !VALUES_NAME!') do echo edition: %%V 
)

endlocal

你能不能用一个钝的工具把写这个PowerShell脚本的人打死?从脚本(临时偶数)更改执行策略不仅是一个坏主意(毕竟这是一个全局设置),而且根本不起作用,因为脚本必须运行以进行检查,这意味着脚本在任何情况下都可以运行。没错,我已将其删除。。。感谢更换没有PowerShell的系统。PowerShell v2可以一直运行到Windows XP SP3和Windows Server 2003。任何早于此的内容都需要在MS几乎不支持的基础上进行替换(现在都处于扩展支持模式)@echo off for/f“skip=2 tokens=1,3 delims=“%%S in('reg query“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL“)do(SET-COREEDITION=%%S SET-COREVERSION=%%T SET-KEY\u-NAME=HKEY\u-LOCAL\u-MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%COREVERSION%\Setup-SET-VALUE\u-NAME=Edition REM-echo-Edition注册表查询“%KEY\u-NAME%”/v%VALUE\u-NAME=版本echo-Version注册表查询“%KEY\u-NAME%”/v%VALUES\u-NAME%)非常感谢您的帮助。我正在尝试安装每个SQL的版本和版本。
@echo off 
setlocal enableDelayedExpansion
for /f "skip=2 tokens=1,3 delims= " %%S in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"') do ( 
 SET "COREEDITION=%%~S" 
 SET "COREVERSION=%%~T"
 SET "KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\!COREVERSION!\Setup" 
 SET "VALUE_NAME=Edition"
 rem echo EDITION 
 for /f "skip=2 tokens=3 delims= " %%E in ('reg query "!KEY_NAME!" /v !VALUE_NAME!') do echo edition: %%E 
 SET VALUES_NAME=Version 
 rem echo VERSION
 for /f "skip=2 tokens=3 delims= " %%V in ('reg query "!KEY_NAME!" /v !VALUES_NAME!') do echo edition: %%V 
)

endlocal