编写一个shell脚本,实现windows下打印设备的名称端口号等信息
时间: 2023-09-17 14:05:49 浏览: 150
### 回答1:
@echo off
for /f "tokens=2 delims=," %%a in ('wmic path Win32_PnPEntity get Name^,DeviceID /format:csv') do echo %%a
pause
### 回答2:
编写一个shell脚本,实现在Windows下打印设备的名称、端口号等信息。
#!/bin/bash
# 使用wmic命令获取设备信息
result=$(wmic printer get Name,PortName,Status /format:list)
# 将结果按行切分为数组
IFS=$'\n' read -d '' -ra lines <<< "$result"
# 遍历数组并打印设备信息
for line in "${lines[@]}"; do
# 判断是否为有效的设备信息行
if [[ $line == Name=* ]]; then
# 使用sed命令提取设备名称、端口号和状态信息
name=$(echo $line | sed 's/Name=//')
port=$(echo $line | sed 's/PortName=//')
status=$(echo $line | sed 's/Status=//')
# 打印设备信息
echo "设备名称: $name"
echo "端口号: $port"
echo "状态: $status"
echo "-------------------"
fi
done
使用以上shell脚本,您可以在Windows下获取并打印设备的名称、端口号以及状态信息。首先,它使用wmic命令来获取所有打印设备的详细信息,包括名称、端口号和状态。然后,它将结果按行切分为数组,并遍历每一行。在遍历过程中,它使用sed命令提取出设备的名称、端口号和状态信息,并将它们打印输出。最后,添加分隔线作为设备信息的分隔符,使其更加清晰可读。
### 回答3:
在Windows操作系统下,可以使用PowerShell脚本来获取打印设备的名称、端口号等信息。下面是一个示例脚本:
```powershell
$printer = Get-WmiObject -Class Win32_Printer | Select-Object Name, PortName, DriverName
Write-Host "打印设备信息:"
foreach ($p in $printer) {
Write-Host "设备名称:" $p.Name
Write-Host "端口号:" $p.PortName
Write-Host "驱动程序名称:" $p.DriverName
Write-Host
}
```
这个脚本使用`Get-WmiObject`命令获取Win32_Printer类的对象,然后使用`Select-Object`选择要显示的属性。最后,使用一个循环将每个打印设备的信息输出到命令行窗口。
要运行这个脚本,可以将其保存为一个文本文件,例如`printer_info.ps1`,然后在PowerShell中运行该脚本。输入以下命令:
```powershell
.\printer_info.ps1
```
脚本将打印出每个打印设备的名称、端口号和驱动程序名称。
阅读全文