2014-04-11 37 views
0

我正在尝试编写一个函数来使用7zip压缩文件,但我遇到了将多个参数传递给该函数的问题。具有多个参数的Powershell函数

$In = "C:\test\gateways_25357_20140407000204.pcap" 
$Out = "C:\test\gateways_25357_20140407000204.zip" 


function CompressFile([string]$Output,[string]$Input) { 
    Write-Host $Output 
    write-host $Input 
    $7zipPath = "C:\Program Files\7-Zip\7z.exe" 
    $Arguments = "a","-tzip",$Output,$Input 
    & $7zipPath $Arguments 

} 

CompressFile $Out $In 

此代码的结果是压缩此脚本的工作目录中的文件,并将输出转到正确的位置c:\ test。

到底什么是我在这里做错了传入$输入参数?

回答

2

$ Input是一个PowerShell自动变量,请尝试更改名称。 看到

$In = "C:\test\gateways_25357_20140407000204.pcap" 
$Out = "C:\test\gateways_25357_20140407000204.zip" 


function CompressFile([string]$Outputz, [String]$Inputz) { 
    Write-Host $Outputz 
    write-host $Inputz 
} 
Write-Host $Out 
write-host $In 
CompressFile $Out $In 

http://technet.microsoft.com/en-us/library/hh847768.aspx

+0

它的工作就像一个魅力!谢谢您的帮助。 – Jdenny