我想移除文件名中的特殊字符到基於文件名的某個目標之後的所有郵件。 FOLDLIST是一個數組,我有條件變量和目標文件夾名。獲取無法將參數綁定參數'路徑',因爲它在PowerShell中爲空錯誤
Set-Location 'C:\Users\abrahame\Desktop\Work\PSG Mail Movement\Mail'
$DESLOC="c:\Temp\ua-closed bugs"
$FOLDLIST = @(("UA", "CLOSE", "ua-closed bugs"), ("VS", "CLOSE", "vs-closed-bugs"), ("CM", "CLOSED", "cm - closed-bugs"))
gci | Foreach-object { $NEWN = $_.Name -replace '&',' ' -replace '_', ' ' -replace '#', ' ' -replace '!', ' ' -replace '@', ' ' -replace '$', ' ' -replace '%', ' ' -replace '^', ' ' -replace '&', ' ' -replace '\(', ' ' -replace '\)', ' ' -replace '\[', ' ' -replace '\]', ' ' -replace '\{', ' ' -replace '\}', ' ' -replace '\-', ' ';
write-host $NEWN.Length
if($NEWN.Length -gt 70){
$NEWN="$NEWN.Substring(1,70)"
$NEWN=$NEWN.msg
}
$FOLDLIST | ForEach-Object {
$CXR=$_[0]
$STAT=$_[1]
if ($NEWN -match ("$CXR") -and $NEWN -match ("$STAT")){
write-host $CXR - $STAT
$DIR=$_[2]
$NEWN=$NEWN.trim()
$DPATH="$DESLOC\$DIR\$NEWN"
write-host $DPATH
mv $_.Name $DPATH
}
}
}
我得到這個錯誤。請告知我在哪裏弄錯了..
67
UA - CLOSE
c:\Temp\ua-closed bugs\ua-closed bugs\RE CLOSE OA TICKET 10350 OA UAT PHASE FOR HP FARES 1 .msg
Move-Item : Cannot bind argument to parameter 'Path' because it is null.
At C:\Users\abrahame\Desktop\Work\PSG Mail Movement\mailmove_multdimentional.ps1:24 char:5
+ mv <<<< $_.Name $DPATH
+ CategoryInfo : InvalidData: (:) [Move-Item], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.MoveItemCom
mand
是的..你是對的..問題解決了。非常感謝你.. – Tamilan