BAT 或 Powershell For 循环通过 CSV 构建 URL
BAT or Powershell For loop through CSV to build a URL
已解决。所以我第一次尝试这个 post 是一个结构非常糟糕的问题,试图以非常糟糕的方式混淆专有公司信息,并且没有很好地提出问题。
一旦沃尔特甚至让我朝着正确的方向思考,我就解决了这个问题。下面是我 运行 进入的第二个问题,发现 @{key=value} 语句被传递到我的 url 因为出于某种原因我的脚本不喜欢 header我的 csv 文件。事后看来,也许是因为我将我的变量命名为与 header 相同的名称。不管怎样,我只是通过使用 Get-Content 而不是 Import-CSV.
来解决它
$aliases = Import-Csv -Path .\aliases.csv
foreach ($alias in $aliases) {
Write-Output ('http://www.' + $($alias) + '.mydomain.com') >> urls.txt
其中 aliases.csv 的内容是:
alias
Matthew
Mable
Mark
Mary
这给了我:
http://www.@{alias=Matthew}.mydomain.com
http://www.@{alias=Mable}.mydomain.com
http://www.@{alias=Mark}.mydomain.com
http://www.@{alias=Mary}.mydomain.com
成功时urls.txt应该包含:
http://www.Matthew.mydomain.com
http://www.Mable.mydomain.com
http://www.Mark.mydomain.com
http://www.Mary.mydomain.com
注意:已编辑以阐明用例
在 Powershell 中
Get-Content names.txt | %{"Hello, my name is $_. How are you?"} >> results.txt
顺便说一句,只要多花点功夫,您就可以从一个csv文件中读取多个变量,并将它们全部替换为文本中的命名变量。事实证明,这在各种情况下都非常有用。
编辑以符合您的编辑
Import-csv ./aliases.csv | %{ "http://www.$($_.alias).mydomain.com"}
备注:
一旦您习惯了它们,管道就是处理几乎所有内容的流的最简单方法。
% 是 Foreach-Object 的缩写(不要与 foreach 混淆)。
对于从管道中出来的每个对象,循环将完成一次。每个对象都是一个 PSCustomObject,带有一个 属性 命名别名。
$() 允许计算双引号字符串中的子表达式。
$_是当前对象。
在此上下文中,点将指定的对象与命名的 属性.
分开
已解决。所以我第一次尝试这个 post 是一个结构非常糟糕的问题,试图以非常糟糕的方式混淆专有公司信息,并且没有很好地提出问题。
一旦沃尔特甚至让我朝着正确的方向思考,我就解决了这个问题。下面是我 运行 进入的第二个问题,发现 @{key=value} 语句被传递到我的 url 因为出于某种原因我的脚本不喜欢 header我的 csv 文件。事后看来,也许是因为我将我的变量命名为与 header 相同的名称。不管怎样,我只是通过使用 Get-Content 而不是 Import-CSV.
来解决它 $aliases = Import-Csv -Path .\aliases.csv
foreach ($alias in $aliases) {
Write-Output ('http://www.' + $($alias) + '.mydomain.com') >> urls.txt
其中 aliases.csv 的内容是:
alias
Matthew
Mable
Mark
Mary
这给了我:
http://www.@{alias=Matthew}.mydomain.com
http://www.@{alias=Mable}.mydomain.com
http://www.@{alias=Mark}.mydomain.com
http://www.@{alias=Mary}.mydomain.com
成功时urls.txt应该包含:
http://www.Matthew.mydomain.com
http://www.Mable.mydomain.com
http://www.Mark.mydomain.com
http://www.Mary.mydomain.com
注意:已编辑以阐明用例
在 Powershell 中
Get-Content names.txt | %{"Hello, my name is $_. How are you?"} >> results.txt
顺便说一句,只要多花点功夫,您就可以从一个csv文件中读取多个变量,并将它们全部替换为文本中的命名变量。事实证明,这在各种情况下都非常有用。
编辑以符合您的编辑
Import-csv ./aliases.csv | %{ "http://www.$($_.alias).mydomain.com"}
备注:
一旦您习惯了它们,管道就是处理几乎所有内容的流的最简单方法。
% 是 Foreach-Object 的缩写(不要与 foreach 混淆)。
对于从管道中出来的每个对象,循环将完成一次。每个对象都是一个 PSCustomObject,带有一个 属性 命名别名。
$() 允许计算双引号字符串中的子表达式。
$_是当前对象。
在此上下文中,点将指定的对象与命名的 属性.
分开