0
現在、簡単なPowerShellスクリプトを作成しています。 基本的には、メモ帳からサーバーのリストを取得し、各サーバー上の.zipファイルの解凍を開始し、新しいフォルダーに展開する必要があります。Powershell経由で複数のリモートサーバー上のファイルを解凍する
ただし、このスクリプトはzipファイルの下にあるすべてのファイルを抽出していません。 それは1つのファイルを抽出するだけで、なぜforeachループが正しく動作しないのか分かりません。
この問題については、明記してください。ありがとう。
$servers = Get-Content "C:\tmp\script\new_unzip\servers.txt"
$Date = ((Get-Date).ToString('dd-MM-yyyy_HH-mm-ss'))
foreach ($server in $servers) {
$shell = new-object -com shell.application
$target_path = "\\$server\c$\Temp\FFPLUS_Temp"
$location = $shell.namespace($target_path)
$ZipFiles = Get-ChildItem -Path $target_path -Filter *.zip
$ZipFiles | Unblock-File
foreach ($ZipFile in $ZipFiles) {
$ZipFile.fullname | out-default
$NewLocation = "\\$server\c$\Temp\FFPLUS_Temp\$Date"
New-Item $NewLocation -type Directory -Force -ErrorAction SilentlyContinue
Move-Item $ZipFile.fullname $NewLocation -Force -ErrorAction SilentlyContinue
$NewZipFile = Get-ChildItem $NewLocation *.zip
$NewLocation = $shell.namespace($NewLocation)
$ZipFolder = $shell.namespace($NewZipFile.fullname)
$NewLocation.copyhere($ZipFolder.items())
}
}
(http://stackoverflow.com/questions/28448202/i-want-to-extract [私はPowerShellを使用して、一時に指定されたディレクトリ内のすべての.zipファイルを抽出する]の可能性のある重複-all-zip-files-in-a-given-temp-using-powershell) – BenH
複数のリモートサーバー上でファイルを展開しようとしていますが、3つのファイルから1つのファイルのみを解凍します。私は何のエラーも受けなかったが、どういうわけかそれは正しくない。 –
私は、代わりの方法として、.NET Framework 4.5に含まれているExtractToDirectoryメソッドを使用しています。 –