我正在用 Powershell 编写一个小脚本。
该脚本正在获取驱动器号并将它们与一些附加代码一起导出到批处理文件中的临时目录。
下面是一个例子:
$TempFolderSavePath = $env:temp + "\SDelete.cmd"
Get-PSDrive -PSProvider 'FileSystem' | Select-Object Name | foreach { $_.Name } | ForEach-Object {"SDelete -z "+ $_} | Out-File $TempFolderSavePath
Run Code Online (Sandbox Code Playgroud)
问题是,该脚本还包括映射的网络驱动器。
我怎么只能使用本地驱动器?
这是脚本的一个版本,没有生成新文件,只是将其输出到控制台。
Get-PSDrive -PSProvider 'FileSystem' | Select-Object Name | foreach { $_.Name } | ForEach-Object {"SDelete -z "+ $_} | Write-Host
Run Code Online (Sandbox Code Playgroud)
据我所知,Get-PSDrive不知道网络和本地驱动器之间的区别。您可以使用Get-WMIObject Win32_LogicalDisk,它支持按类型过滤驱动器。
过滤示例:
Get-WmiObject Win32_LogicalDisk | select-object DeviceID, DriveType, @{Name="Type";Expression={[IO.DriveType]$_.DriveType}} | ? {$_.Type -eq 'Fixed'}
Run Code Online (Sandbox Code Playgroud)
或者
Get-WmiObject Win32_LogicalDisk | ? {$_.DriveType -eq 3}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1046 次 |
| 最近记录: |