【发布时间】:2017-09-12 14:48:34
【问题描述】:
我有以下 ps1 文件(下面的脚本,不幸的是它必须是 PowerShell,而不是更简单的东西),运行 curl 请求,将其中的一部分取出到文件中,然后运行一些文本替换。
$url = "https://someserver/trans="
$transaction = "1" #There are 4 transactions
$node = "node1" #There are 10 nodes
Remove-Item ATM.csv -Force
# So far so good
# Below is what I'd use as a function in bash. No sure what/how to do in PS:
#OUTPUT:
echo $transaction";"$node >> ATM.csv
curl -v -k -u user@pass $url$transaction$node | findstr "<value>" >> ATM.csv
(Get-Content ATM.csv) -replace "<value>"," " | Out-File ATM.csv
(Get-Content ATM.csv) -replace "</value>"," " | Out-File ATM.csv
(Get-Content ATM.csv) -replace " ","" | Out-File ATM.csv
脚本原样为我提供了一个交易值(csv 中的三行:交易、节点和一个数字)。在实践中,我需要使用包含 10 台机器和 4 个不同事务的数组或列表。
我的问题是为两个变量设置一个循环,我需要运行 OUTPUT 部分 40 次(4 个事务 X 10 个节点)。我在 Python、bash 中做过类似的事情,但我发现自己在 PowerShell 中感到困惑和没时间。我花了几个小时在网上跑来跑去,尝试一些无效的例子。
你能帮帮我吗?
【问题讨论】:
-
这不是您在 PowerShell 中处理这些事情的方式。完全没有。请提供示例
curl输出(未过滤),以及您要从中创建的所需 CSV 输出。 -
另外,
-replace使用正则表达式 -
完成后的 URL 是什么样子的,
https://serv/trans=1node1? -
您的代码说 4 个事务 10 个节点,而文本说反之亦然?要处理 html/xml/json 返回,有比使用 findstr.exe 更好的方法。 edit 你的问题包含一个详细的返回和你预期的 csv 最终结果?
;分隔符。 -
@LotPings - 4 个交易 10 个节点,修复了文本中的错误 :-)
标签: windows loops powershell export-to-csv