我一起吃了这个,但有点卡住了。代码将项目放在根目录而不是它来自的文件夹中,即如果它在测试文件夹中,它将它直接放在用户文件夹中,我希望它创建一个测试文件夹并将项目放在那里。复制完项目后,我希望它压缩位置。有一次,我以为我可以创建一个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
答案 0 :(得分:0)
您需要将源目录的根目录替换为目标路径中目标目录的根目录:
$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 }