【发布时间】:2022-10-17 05:19:22
【问题描述】:
所以我对powershell很陌生,我试图列出一个目录(在我的vm上)的所有内容,同时说明每个目录是否是一个reg文件或目录以及它的路径/大小。 我的代码是:
#!/bin/bash
cd c:\
foreach ($item in get-childitem -Path c:\) {
Write-Host $item
}
########
if(Test-Path $item){
Write-Host "Regular File" $item
}
else {
Write-Host "Directory" $item
}
我可以打印所有内容,但是当我尝试说明是否是文件/目录时,只有一个.txt 文件旁边显示“常规文件”。我已经连续几个小时搞定了。另外,我的输出没有在目录旁边声明“目录”......
【问题讨论】:
-
为什么要为 PowerShell 脚本添加 bash shebang?
-
您的 if () {...} else {...} 代码需要移动到 foreach 块 { ... 大括号之间 ... } 和
Test-Path对于常规文件和目录都将成功,因此它将总是说“常规文件”。请阅读关于页面,如果您仍有问题,请稍后再回来。 foreachGet-ChildItem -
在学习时使用Get-Member 和Get-Help。很少使用
Write-Host,除非你绝对需要在屏幕上写一些文字,然后再三思。阅读about_Scripts 以及“另请参阅”部分下的所有链接页面
标签: powershell file filesystems