【发布时间】:2020-03-16 04:06:24
【问题描述】:
我已经构建了一个 Power Shell 脚本,它应该执行以下操作
- 如果不存在则创建java版本目录
- 从内网下载文本文件
- 从下载的文本文件中检查 java 版本
- 如果版本不同,请在线下载 java zip 文件
- 解压 java zip 文件
- 将 JDK zip 文件复制到 C:\Program Files\Java
- 解压后删除 zip 文件
下面是我的 Power Shell 脚本
$JavaVersion = "java.version=11.0.6"
$Folder = "C:\Users\$env:UserName\test\java"
$IntranetUrl = http://10.1.48.25/test/version.txt
$IntranetTextFile = "C:\Users\$env:UserName\test\java\version.txt"
$JavaDownloadPath = http://10.1.48.25/test/install/Inst_20.05.00.01/testDesktop/OpenJDK11U-
jdk_x64_windows_hotspot_11.0.6_10.zip
$JavaZipFilePath = C:\Users\$env:UserName\test\java\openjdk-11+28_windows-x64_bin.zip
$ExpandArchivePath = "C:\Users\$env:UserName\test\java\*.zip"
$ExpandArchiveDestinationPath = "C:\Users\$env:UserName\test\java"
# create java version directory in C:\Users\$env:UserName\test\java if it does not exist
if (-not (Test-Path $Folder)) {
try {
New-Item -Path $Folder -ItemType Directory -ErrorAction Stop | Out-Null #-Force
}
catch {
Write-Error -Message "Unable to create directory "C:\Program Files\test". Error was: $_" -
ErrorAction Stop
}
}
# Download text file from intranet
Invoke-WebRequest http://10.1.48.25/test/version.txt -OutFile
"C:\Users\$env:UserName\test\java\version.txt"
# Check java version from version.txt
If (Get-Content $IntranetTextFile | %{$_ -match $JavaVersion})
{
echo Version Same
}
else
{
# Download Java file
Invoke-WebRequest $JavaDownloadPath -OutFile $JavaZipFilePath
}
#Extract the zip file in C:\Users\$env:UserName\test\java\jdk-11.0.6
if (-not (Test-Path "C:\Users\$env:UserName\test\java\jdk-11")) {
Expand-Archive "C:\Users\$env:UserName\test\java\openjdk-11+28_windows-x64_bin.zip" -DestinationPath
"C:\Users\$env:UserName\test\java"
}
# Copy the JDK zip file to C:\Program Files\Java
Copy-Item -Path .\*.zip -Destination $ExpandArchiveDestinationPath -force
#Delete the zip file after extraction
Remove-Item $JavaZipFilePath -Force
我的问题是:
- 当 java 版本相同时,上面的脚本正在下载我不想要的 java zip 文件!
目的是检查版本是否相同然后显示“相同版本” 如果没有,请下载 zip 文件
- 当版本不同时,它不会提取 zip 文件,不会复制文件,也不会删除它。
对于如何解决上述问题,我对 power shell 完全陌生。
【问题讨论】:
标签: java powershell powershell-2.0