Joh*_*mBF 7 powershell cmd batch-file
我有一个包含两个不同列的CSV文件,一个包含PC名称,另一个包含MAC地址,如下所示:
PCxxxx 00-11-22-33-44-55
...
...
Run Code Online (Sandbox Code Playgroud)
这些值应放在以下CLI命令中:
wdsutil /Set-Device /Device:PCxxxx /ID:00-11-22-33-44-55
Run Code Online (Sandbox Code Playgroud)
现在因为它们中有大约200个,我想自动化它.
有兴趣的话,可以批量做吗?这会很复杂,对吧?我想到了数组,但不认为可以批量执行此操作.
也许使用PowerShell它会更容易一些.
Joe*_*oey 10
在批处理文件中:
for /f "tokens=1,2 delims= " %%a in (foo.csv) do (
wdsutil /Set-Device /Device:%%a /ID:%%b
)
Run Code Online (Sandbox Code Playgroud)
实际上,你可以直接做一个单行的cmd:
for /f "tokens=1,2 delims= " %a in (foo.csv) do wdsutil /Set-Device /Device:%a /ID:%b
Run Code Online (Sandbox Code Playgroud)
在PowerShell中,您可以使用类似的想法:
Get-Content foo.csv | ForEach-Object {
$name,$mac = -split $_
wdsutil /Set-Device /Device:$name /ID:$mac
}
Run Code Online (Sandbox Code Playgroud)
或者使用CSV导入cmdlet,但鉴于您的问题,您似乎没有列标题,因此您需要手动提供它们:
Import-CSV -Delim ' ' -Path foo.csv -Header Name,Mac | ForEach-Object {
wdsutil /Set-Device "/Device:$($_.Name)" "/ID:$($_.Mac)"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19110 次 |
| 最近记录: |