arrays - 如何在powershell中创建这样的数组?
问题描述
我需要为 TextToColumns Excel 自动化存储如下数据。我需要实现 Code-2 或 Code-3 或 Code-4 有什么方法可以实现吗?我有超过 350 多个数据,所以我不能使用 Code-1,这对我来说不公平。
代码 1:工作正常
$var = (1,2),(2,2),(3,2),(4,2),(5,2),(6,2)........(300,2)
$ColumnA.texttocolumns($colrange,1,-412,$false,$false,$false,$false,$false,$true,"|",$var)
代码 2:不工作
$var = @((1,2)..(300,2))
$ColumnA.texttocolumns($colrange,1,-412,$false,$false,$false,$false,$false,$true,"|",$var)
代码 3:不工作
$var = @()
#forloop upto 300
{ $var += ($i,2) }
$ColumnA.texttocolumns($colrange,1,-412,$false,$false,$false,$false,$false,$true,"|",$var)
代码 4:不工作
[array]$var = 1..300 | foreach-object { ,@($_, 2) }
$ColumnA.texttocolumns($colrange,1,-412,$false,$false,$false,$false,$false,$true,"|",$var)
解决方案
我无法完全解释这里发生了什么,但我想这与texttocolumns
需要一个(延迟的)表达式而不是一个(评估的)对象的事实有关。
这意味着以下内容似乎适用于@mclayton的Minimal, Reproducible Example:
$Var = Invoke-Expression ((1..6 |% { "($_, `$xlTextFormat)" }) -Join ',')
并期望以下内容可以解决最初问题中的问题:
$Var = Invoke-Expression ((1..300 |% { "($_, 2)" }) -Join ',')
推荐阅读
- linux - 无法在远程容器的命名空间内运行隔离进程
- javascript - 如果 $.each() 之前的 json 响应为空,则检查 $.each() 内的 var 内容
- java - 如何避免 selenium 中的 sendKeys 方法清除以前填充的文本?
- android - 手势检测器无法在带有剪辑的custompainter中工作
- prolog - 为什么它给我错误的子集的结果?
- php - 需要来自 URL 的 PHP 文件
- vue.js - 无法从 getter 检索变异数据
- git - 用于 GitHub 项目的 Jenkins 流水线
- exiftool - 跨多种特定文件类型运行 exiftool
- python - 如何获取我的 Twitter 关注者列表?