powershell - Powershell 查询 - 找不到路径的一部分
问题描述
我正在尝试使用 power shell 脚本从 csv 列表中查询电子邮件 ID 并发送批量个性化电子邮件。csv 文件和脚本都位于桌面上的同一文件夹中(\DECSRV02\Folder Redirection\paranjyoti\桌面\Powershell_massmail)。该脚本包含 csv 导入为:
$csv = Import-Csv 'C:\Users\paranjyoti\Desktop\Powershell_massemail\UserList.csv'
$Credential = Get-Credential
Foreach($Message in $csv){
$Recipient = $Message.EmailAddress
$FirstName = $Message.FirstName
$LastName = $Message.Surname
$Course = $Message.Course
$Grade = $Message.Grade
$Subject = "$FirstName $LastName - $Course Exam Result"
Write-Host "Sending email to $FirstName $LastName"
Write-Host "Email Address: $Recipient"
$mailBody =
@"
Hello $FirstName,</br>
We have marked your recent exam and the results are as follows:</br>
</br>
Student Name: $LastName, $FirstName</br>
Course: $Course</br>
Result: $Grade</br>
</br>
Thank you for taking a course at our school,</br>
The Faculty
"@
Send-MailMessage -Body $mailBody -BodyAsHtml `
-From "faculty@greatschool.com" -To $Recipient `
-Subject $subject -Encoding $([System.Text.Encoding]::UTF8) `
-Credential $Credential -SmtpServer "smtp.office365.com" -UseSSLcopy
}
运行脚本时,错误出现为“找不到路径的一部分” 显示了附加的错误消息图像 请您帮助识别错误。
解决方案
我得到了如下错误,即使它不是上述问题的确切答案,我也会在这里与任何有类似问题的人分享。
Copy-Item:找不到路径的一部分“D:\projects\changeDetection\cubeRepos\cm-2.0\ConceptMiner2\CM.Spidering.CsSched uleLightweight\csx\Debug\roles\CM.Spidering.CsScheduleLightweight.Worker\approot \Templates\TEST\TEST\REG\TEST--TEST--REG--CACH E-REFRESH\TEST--TEST--REG--CACHE-REFRESH.structure.json”。
但是我验证了上面提到的文件夹路径是存在的,并且可以在想要的目录下创建文件。一些谷歌搜索得到了问题的真正原因。这是因为 windows对文件路径有260 个字符的限制。您会注意到我的路径正好有260 个字符,但是在路径长度验证中存在一个小问题。Path 在路径末尾附加了一个空字符。所以总路径长度变为 261导致它失败。
最快的解决方法是重命名文件,使新文件名少于 260 个字符。有关此错误的更多信息以及扩展路径限制的方法,请参阅Microsoft 文档
推荐阅读
- asp.net - 在另一个 modalpopup 中关闭 modalpopup
- java - 是否可以在不杀死 jvm 的情况下模拟 java 应用程序的突然重启?
- sql - SQL 性能与 UTL_MATCH.EDIT_DISTANCE 类似
- angular - Angular ng build --prod && gzip-all \"dist/anti-fraud/*.*\" build 工作正常,但 Gzip 无效“'gzib' 无法识别”
- python-3.x - 如何在能够将该数字转换为普通浮点数或整数的同时使用千位逗号分隔符?
- php - 如何使用 MCRYPT_DES 和 ecb 解密使用 mcrypt_encrypt 加密的字符串
- eclipse - UnsatisfiedLinkError 使用来自 Eclipse 中处理的串行端口
- java - 在 Mac 中从命令行运行 Junit 的语法
- neo4j - 如何在从 csv 文件读取的 neo4j GraphDB 中将新记录添加到现有标记节点中
- c++ - 使用 Libtorch + OpenCV + QT Creator 时出错