【发布时间】:2015-01-04 10:00:34
【问题描述】:
我在 Powershell 上制作了一个程序来列出所有大于 1MB、介于 0.5MB 和 1Mb 之间以及小于 0.25MB 的文件。 这是我的代码:
$files = Get-ChildItem "C:\Temp" |`
Where {!$_.PsIsContainer}`
foreach ($file in $files){`
switch ($file.Length){`
{$_ -gt 1MB}{Write-Host $file.Name, $file.Length`
-ForegroundColor Red; break}`
{$_ -gt 0.5MB}{Write-Host $file.Name, $file.Length`
-ForegroundColor Magenta; break}`
{$_ -ge 0.25MB}{Write-Host $file.Name, $file.Length`
-ForegroundColor Cyan; break}`
default {Write-Host $file.Name, $file.Length}`
}`
}`
我从第三行 (foreach ($file in $files)) 收到错误消息。错误说:
表达式或语句中出现意外标记“in”。在行:3 字符:18 + foreach ($file in
我现在是 Powershell 的初学者。任何帮助将不胜感激
【问题讨论】:
-
请正确缩进您的代码,并将其格式化为代码。
-
@Matt OP 可以用我建议的清理方法覆盖待处理的编辑。
-
Liam,在您粘贴的代码中,每行末尾的反引号 (`) 是因为它在您的代码中,还是因为您试图格式化此站点的代码而存在?如果是前者,那是你的问题。反引号不是行尾字符。这是一个此行继续字符。
-
我批准了这个待修改的编辑,因为那是用户实际写的。
-
一开始我以为反引号是在编辑中添加的。我正在查看使我感到困惑的渲染输出。编辑是正确的。我也批准了。 @BaconBits
标签: powershell foreach