File PowerShell:复制文件然后压缩

File PowerShell:复制文件然后压缩,file,powershell,zip,copy-paste,File,Powershell,Zip,Copy Paste,我一起做了这件事,但有点卡住了。代码将项目放置在根目录中,而不是它来自ie的文件夹中。如果它位于测试文件夹中,它将直接放置在用户文件夹中,我希望它创建一个测试文件夹并将项目放置在其中。在它复制了这些项目之后,我希望它能够压缩位置。有一次我想我可以创建一个txt文件,然后用它来复制项目,但后来我迷路了 $PCName = Read-Host "Enter Machine Name" $User = Read-Host "Enter User Name" $NAS = "\\<nas>\

我一起做了这件事,但有点卡住了。代码将项目放置在根目录中,而不是它来自ie的文件夹中。如果它位于测试文件夹中,它将直接放置在用户文件夹中,我希望它创建一个测试文件夹并将项目放置在其中。在它复制了这些项目之后,我希望它能够压缩位置。有一次我想我可以创建一个txt文件,然后用它来复制项目,但后来我迷路了

$PCName = Read-Host "Enter Machine Name"
$User = Read-Host "Enter User Name"
$NAS = "\\<nas>\users\$user"
$Dir = get-childitem \\$PCName\C$\users\$User -force -recurse | where {
$_.extension -match "doc|xls|docx|xlsx|pdf|pst|txt|jpg|tif"} | ForEach {
Copy-Item $_.FullName -Destination $NAS -force -ErrorAction:SilentlyContinue
}


#$Dir | ft fullname | out-file C:\Scripts\logs\FileList\$User.txt
$Dir | format-table name# PowerShell script to list the DLL files under the system32 folder
$PCName=读取主机“输入机器名”
$User=读取主机“输入用户名”
$NAS=“\\\users\$user”
$Dir=get childitem\\$PCName\C$\users\$User-force-recurse |其中{
$|扩展名-匹配“doc | xls | docx | xlsx | pdf | pst | txt | jpg | tif”}{
复制项目$\全名-目的地$NAS-强制-错误操作:SilentlyContinue
}
#$Dir | ft fullname | out文件C:\Scripts\logs\FileList\$User.txt
$Dir | format table name#PowerShell脚本以列出system32文件夹下的DLL文件

您需要在目标路径中将源目录的根替换为目标目录的根:

$PCName = Read-Host "Enter Machine Name"
$User = Read-Host "Enter User Name"
$NAS = "\\<nas>\users\$user"
$sourceRoot = "\\$PCName\C$\users\$User"
$Dir = get-childitem $sourceRoot -force -recurse | 
    where { $_.extension -match "doc|xls|docx|xlsx|pdf|pst|txt|jpg|tif"} | 
    ForEach {  
        $destFile = $_.FullName.Replace($sourceRoot, $NAS)
        New-Item -ItemType File -Path $destFile -Force
        Copy-Item $_.FullName -Destination $destFile -force -ErrorAction:SilentlyContinue }
$PCName=读取主机“输入机器名”
$User=读取主机“输入用户名”
$NAS=“\\\users\$user”
$sourceRoot=“\\$PCName\C$\users\$User”
$Dir=get childitem$sourceRoot-force-recurse |
其中{$| extension-match“doc | xls | docx | xlsx | pdf | pst | txt | jpg | tif”}
ForEach{
$destFile=$\.FullName.Replace($sourceRoot,$NAS)
新建项-ItemType文件-Path$destFile-Force
复制项目$\ux.FullName-destFile-force-ErrorAction:SilentlyContinue}

我收到一个错误,路径的一部分不存在。我能够使用此处描述的触摸方法:。上面的内容和链接结合在一起,在复制项目行New item-ItemType File-Path$destFile-force的正上方给出了这一点