Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 单独压缩文件,而不考虑扩展名_Powershell_7zip - Fatal编程技术网

Powershell 单独压缩文件,而不考虑扩展名

Powershell 单独压缩文件,而不考虑扩展名,powershell,7zip,Powershell,7zip,下面是我的代码: Function ZipOnebyOne{ $extension = Get-ChildItem $filePath foreach ($file in $extension) { $name = $file.name $directory = $file.DirectoryName $zipfile = $name.Replace($fileExtension,".7z") sz a -t

下面是我的代码:

Function ZipOnebyOne{
    $extension = Get-ChildItem $filePath
    foreach ($file in $extension) { 
        $name = $file.name 
        $directory = $file.DirectoryName 
        $zipfile = $name.Replace($fileExtension,".7z") 
        sz a -t7z "$directory\$zipfile" "$directory\$name"      
    }
}

我只想将文件单独压缩到$filePath中,而不考虑其扩展名。上述方法不起作用

正如@KenWhite所说,您没有明确说明问题所在,但是,我给您取样并修复了所有我能找到的问题也许,这会对你有所帮助

使用PowerShell 5压缩存档功能的示例
函数ZipOnebyOne{
param(
[参数(必需=$true)]
[字符串]
$filepath
)
$extension=Get ChildItem$filePath-File-Recurse
foreach($扩展名中的文件){
$name=$file.name
$directory=$file.DirectoryName
$fileExtension=$file.Extension
$zipfile=$name.Replace($fileExtension,'.zip'))
压缩存档-路径(连接路径$directory$name)-目标路径(连接路径$directory$zipfile)-更新
}
}
使用7-Zip的示例 “不工作”是一个无用的问题描述。如果你不明白为什么,打电话给你的医生,说我的身体不工作。出了什么问题,我该如何解决?看看你是否得到诊断和治疗。您对该代码有什么具体问题?
$filePath
中的值是多少?什么是
$fileEtension
,它来自何处?可能重复的
Function ZipOnebyOne{
    param(
        [Parameter(Mandatory=$true)]
        [string]
        $filepath
    )

    $7z = 'C:\Program Files\7-Zip\7z.exe'
    $extension = Get-ChildItem $filePath -File -Recurse
    foreach ($file in $extension) { 

        $name = $file.name 
        $directory = $file.DirectoryName 
        $fileExtension = $file.Extension
        $zipfile = $name.Replace($fileExtension, '.7z') 
        $null = & $7z -t7z a (Join-path $directory $zipfile) (Join-Path $directory $name)
    }
}