powershell - 从 Excel 粘贴数据并转换为数组?
问题描述
我是新的 powershell,想从 Excel 中获取服务器列表,然后将其粘贴到输入窗口中。它应该将它隔离并一个接一个地处理它。
即给出服务器的名称:
arvdel1 arvdel2 arvdel3 arvdel4
它应该把它当作
$a=@(arvdel1,arvdel2,arvdel3,arvdel4)
我怎样才能做到这一点?
解决方案
目前还不清楚你在追求什么。
- 您根本无法将 excel 单元格范围粘贴到 powershell 控制台提示符中而不会出现一堆错误。
- PowerShell 脚本可以在自己的提示符下等待接受输入,
- 这里的第一个问题是单个输入 (
Read-Host
) 将由一个cr/lf
序列终止,这是 excel 用来分隔相邻ROW的方法。因此,您将需要一个循环来捕获所有粘贴的 ROW。第二个问题是您不知道何时处理所有行。 - 复制具有多列的范围时,它们是TAB分开的
- 这里的第一个问题是单个输入 (
要使用多个列/行处理未知的剪贴板(文本)内容,我将使用(如评论中所建议的那样)Get-Clipboard
并使用基于 RegEx 的拆分运算符与 OR 来拆分 aTAB或CR/LF
> (Get-Clipboard) -split '\t|\r?\n'
arvdel1
arvdel2
arvdel3
arvdel4
> (Get-Clipboard) -split '\t|\r?\n'
arvdel1
arvdel2
arvdel3
arvdel4
> (Get-Clipboard) -split '\t|\r?\n'
arvdel1
arvdel2
arvdel3
arvdel4
arvdel2
C3
D3
E3
arvdel3
C4
D4
E4
arvdel4
C5
D5
E5
您当然可以分配给变量或直接附加 aForEach-Object
来处理它们,而不是输出到控制台。
编辑:使用DFinke 的 ImportExcel 模块直接从 PowerShell 读取上述 excel 文件的替代方法:
> import-excel .\Data.xlsx
ServersCol
----------
arvdel1
arvdel2
arvdel3
arvdel4
推荐阅读
- ruby-on-rails - Query the last instance with condition in Rails
- javascript - 如何为 HTML 表格和列指定特定宽度
- node.js - 无法构建项目获取命令 "C:\Users\UserName\AppData\Roaming\npm\grunt install --target=dev" exited with code 1
- sql - PSQL 按顺序选择 a 或 b,但如果 a 和 b 都存在,则不要同时选择 a 和 b
- coq - even_Sn_not_even_n - 将 1 个假设应用于另一个
- rest - swagger 规范文件保存在哪里?
- c - 我想加上数字形式的字符串数据类型
- android - 对于下面提到的订阅服务、Stripe 或 Google 的应用内结算,我需要如何或使用哪个支付系统?
- node.js - npm build 给出“接近堆限制分配失败的无效标记压缩”
- whatsapp - Whats app (web.whatsapp.com/send) 发送不工作