将命令脚本转换为 powershell
Converting command script to powershell
我有这个命令提示符脚本,我需要将其转换为 powershell 脚本,但由于我不熟悉 powershell,所以我不知道从哪里开始。首先,我想我需要以不同的方式声明变量,并在长命令中以不同的方式引用它们。
@echo On
setlocal
set base_dir=D:\Temp\peijun\LoadLegacyDocs
set java_home=D:\Programs\jre6.31
set environment=stg
set result=logs\%environment%\%1.properties
"%java_home%\bin\java" -javaagent:%base_dir%\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar -classpath %base_dir%\config\%environment%;%base_dir%\lib\openejb-3.1.4\lib\*;%base_dir%\lib\jar\*;%base_dir%\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar -Dlog4j.configuration=file:///%base_dir%/config/%environment%/log4j.properties com.eds.jdc.util.LoadLegacyDocs %1 %2 %3
编辑:
这是我目前拥有的。除了更改在长命令行中声明和引用变量的方式外,没有太多变化。我在正确的轨道上吗?
Write-Host On
$env:base_dir="D:\Temp\peijun\LoadLegacyDocs"
$env:java_home="D:\Programs\jre6.31"
$env:environment="stg"
$env:result="logs$environment\%1.properties"
"$java_home\bin\java" -javaagent:$base_dir\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar -classpath $base_dir\config$environment;$base_dir\lib\openejb-3.1.4\lib\*;$base_dir\lib\jar\*;$base_dir\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar -Dlog4j.configuration=file:///$base_dir/config/$environment/log4j.properties com.eds.jdc.util.LoadLegacyDocs %1 %2 %3
java 的参数列表在我的示例中可能(现在)是正确的。试试这个...
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$dir1,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$dir2,
[Parameter(Mandatory)]
[boolean]$Save
)
$Env:base_dir = 'D:\Temp\peijun\LoadLegacyDocs'
$Env:java_home = 'D:\Programs\jre6.31'
$Env:environment = 'stg'
$Env:result = "logs$Env:environment$dir1.properties"
& "$Env:java_home\bin\Java" "-javaagent:$Env:base_dir\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar" "-classpath $Env:base_dir\config$Env:environment;$Env:base_dir\lib\openejb-3.1.4\lib\*;$Env:base_dir\lib\jar\*;$Env:base_dir\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar" "-Dlog4j.configuration=file:///$Env:base_dir/config/$Env:environment/log4j.properties com.eds.jdc.util.LoadLegacyDocs $dir1 $dir2 $Save"
但是 .ps1 文件无法“独立”启动,您必须使用 PowerShell 主机(即 PowerShell 控制台)而不是 cmd.exe 到 运行 它。
我有这个命令提示符脚本,我需要将其转换为 powershell 脚本,但由于我不熟悉 powershell,所以我不知道从哪里开始。首先,我想我需要以不同的方式声明变量,并在长命令中以不同的方式引用它们。
@echo On
setlocal
set base_dir=D:\Temp\peijun\LoadLegacyDocs
set java_home=D:\Programs\jre6.31
set environment=stg
set result=logs\%environment%\%1.properties
"%java_home%\bin\java" -javaagent:%base_dir%\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar -classpath %base_dir%\config\%environment%;%base_dir%\lib\openejb-3.1.4\lib\*;%base_dir%\lib\jar\*;%base_dir%\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar -Dlog4j.configuration=file:///%base_dir%/config/%environment%/log4j.properties com.eds.jdc.util.LoadLegacyDocs %1 %2 %3
编辑:
这是我目前拥有的。除了更改在长命令行中声明和引用变量的方式外,没有太多变化。我在正确的轨道上吗?
Write-Host On
$env:base_dir="D:\Temp\peijun\LoadLegacyDocs"
$env:java_home="D:\Programs\jre6.31"
$env:environment="stg"
$env:result="logs$environment\%1.properties"
"$java_home\bin\java" -javaagent:$base_dir\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar -classpath $base_dir\config$environment;$base_dir\lib\openejb-3.1.4\lib\*;$base_dir\lib\jar\*;$base_dir\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar -Dlog4j.configuration=file:///$base_dir/config/$environment/log4j.properties com.eds.jdc.util.LoadLegacyDocs %1 %2 %3
java 的参数列表在我的示例中可能(现在)是正确的。试试这个...
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$dir1,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$dir2,
[Parameter(Mandatory)]
[boolean]$Save
)
$Env:base_dir = 'D:\Temp\peijun\LoadLegacyDocs'
$Env:java_home = 'D:\Programs\jre6.31'
$Env:environment = 'stg'
$Env:result = "logs$Env:environment$dir1.properties"
& "$Env:java_home\bin\Java" "-javaagent:$Env:base_dir\lib\openejb-3.1.4\lib\openejb-javaagent-3.1.4.jar" "-classpath $Env:base_dir\config$Env:environment;$Env:base_dir\lib\openejb-3.1.4\lib\*;$Env:base_dir\lib\jar\*;$Env:base_dir\lib\common_lib\*;d:\documentum\config;d:\Programs\Documentum\dctm.jar" "-Dlog4j.configuration=file:///$Env:base_dir/config/$Env:environment/log4j.properties com.eds.jdc.util.LoadLegacyDocs $dir1 $dir2 $Save"
但是 .ps1 文件无法“独立”启动,您必须使用 PowerShell 主机(即 PowerShell 控制台)而不是 cmd.exe 到 运行 它。