2014-04-23 58 views
0

有人用7zip覆蓋文件有問題嗎?我使用這個腳本:當你觸發腳本之前刪除的文件如何使7zip覆蓋?

if ($name.Contains('something')) 
{ 
Get-ChildItem \\server\load\$name | 
% { 
& "C:\test\7z.exe" "x" "-aoa" "-y" $_.fullname "-o\\server\output" 
    } 
    } 
else 
{ 
"$name unknown" 
} 

一切工作正常,但它不會覆蓋新文件。我使用-aoa,但也許有不同的開關? 當我嘗試提取7zip GUI上的文件並覆蓋它的罰款,所以我想這不是權限問題。

由於使用這種

回答

1

嘗試:

&"C:\test\7z.exe" x -aoa -y "$_.fullname" -o"\\server\output"

&是不是它如何處理參數,以我的經驗非常一致。但是,通常,當您使用&時,應該假定PowerShell不會從參數中去除引號。當你調用的程序需要它們自己的參數時,你應該只使用引號。在我的腳本中存檔IIS日誌,我使用這個:

&"$7Zip" a "$ArchiveFile" "$FullLogPath\$LogFileSpec" -mx=9 -mmt=on 

變量只是路徑或文件名。引號只是因爲路徑和文件名可以有空格。

我通常弄明白的方法是Write-Host的字符串&會調用,然後複製並粘貼到一個cmd.exe shell窗口

+0

謝謝你的答覆。不幸的是你的解決方案給出相同的結果也許我需要將文件解壓到另一個位置並強制移動它們? – WhiteHorse

+0

嗯。這可能會起作用。我唯一能想到的就是這是一個問題,因爲遠程文件被鎖定或者只是輸出到遠程路徑的問題。但是,如果手動輸入完全相同的行,那對我來說沒有意義。 –

+0

今天我看着如果文件被這個人的腳本鎖定:http://mspowershell.blogspot.com.es/2008/07/locked-file-detection.html在更新之前,文件沒有被鎖定。同樣的結果。我認爲7zip有問題,明天我會嘗試另一個存檔工具。 – WhiteHorse