【发布时间】:2015-04-16 15:32:38
【问题描述】:
希望你在这个晴朗的星期四下午过得愉快。不知道你能不能帮帮我。
我正在尝试编写一个ForEach-Object 语句,它将循环遍历用户名列表并删除一些目录。
想象一下远程桌面终端服务器有 50 多个用户并且由于每个人在 c:\users\%username%\appdata\local\temp 中有很多文件而导致 C: 驱动器上的空间不足的场景。我想编写一个脚本,看起来会为所有用户删除该目录。
所以我的手指引导我输入以下内容(我创建了一个 csv,其列标题为 SamAccountName 和一些用户名在下面的行中,称为 users.csv 并放置在 c 的根目录中:) - 添加到此,脚本最终会包含多个目录:
Import-Csv -path c:\users.csv | ForEach-Object { Remove-Item -Path c:\users\$_.SamAccountName\Appdata\Local\Temp -Recurse -Force }
错误信息是:
Cannot find path 'C:\users\@{SamAccountName=user1}.SamAccountName\Appdata\Local\Temp'
User1 确实存在,但似乎 powershell 没有像我预期的那样调用该变量。当然,我需要返回C:\users\user1\Appdata\Local\Temp的路径
你能在这里提出正确的方法吗?
【问题讨论】:
标签: powershell foreach