Powershell备份脚本

问题描述 投票:0回答:1

所以几年前,我创建了一个可以使用和执行Windows PC的脚本,可以将用户文档文件夹中的所有PDF文件备份到U盘中,而不考虑用户名。这个脚本也不使用驱动器字母来识别U盘,而是使用驱动器的卷名。所以,无论在哪里使用,哪台电脑,哪个用户或者U盘的字母,它都能正常工作。

然而现在我刚刚重新创建了它,由于某些原因,脚本运行没有任何障碍,它不再复制pdfs到闪存驱动器。任何帮助找出原因将是很好的。我不是一个专业的Powershell。

param([parameter(mandatory=$true)]$VolumeName) $backupPath = $null 
get-wmiobject win32_logicaldisk | % { if ($_.VolumeName -eq $VolumeName) {  $backupDrive = $_.DeviceID } } 
$backupPath = $backupDrive + "\"
robocopy $env:username\Documents\ *.pdf $backupDrive /MIR /Z /XJD
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU' -Name '*' -ErrorAction SilentlyContinue
Remove-Item -path $env:username\Downloads\backup.ps1 -recurse
windows powershell scripting robocopy
1个回答
0
投票

你创建了一个变量 $backupPath 但你使用了变量 backupDrive 的命令行中。而不是 $env:UserPorfile 你用 $env:userName. 我怀疑这个脚本是否能成功运行一次。而且你有一些不相关的代码行在里面。

param(
    [parameter(mandatory = $true)]
    $VolumeName
) 
$backupDrive = (Get-CimInstance -ClassName Win32_LogicalDisk | Where-Object -Property VolumeName -EQ -Value $VolumeName).DeviceID
$backupPath = $backupDrive + '\'
robocopy $Env:USERPROFILE\Documents\ $backupPath *.pdf /S /Z /XJD /NDL /PURGE

你可以问问作者,你从哪里下载的这个脚本来修复它;-)

© www.soinside.com 2019 - 2024. All rights reserved.