【发布时间】:2016-11-18 01:40:01
【问题描述】:
我正在尝试导入一个 CSV,其中包含这些虚构地点开放的一周中的每一天的虚构地点和时间。
时间为 5:00-4:00 格式。有些有空格。我创建了一个删除空格的函数。运行该函数后,PowerShell 似乎无法对返回的字符串(即 -split)运行任何进一步的操作。
CSV:
Node,SAT,SUN,MON,TUE,WED,THU,FRI
PizzaPlace,9:00 – 4:30,0,8:00-3:30,7:00 – 10:00,10:00 – 4:00,10:00 – 4:00,10:00 – 4:00
BigPharma,0,5:00 – 4:00,7:00-6:00,7:00-6:00,0,0,7:00-6:00
GreenHouse,12:00-8:00,0,12:00-7:30,12:00-7:30,12:00-7:30,12:00-7:30,12:00-7:30
Portapoty,12:00-8:00,Closed,10:00-6:00,10:00-7:30,10:00-6:00,10:00-7:30,10:00-6:00
PS1 脚本:
function Unk-AMPM ($openStr) {
$openStr -replace " ";
}
$csvInputs = Import-CSV SampHours.csv;
$srPRBN = "Our hours for";
$srPRAN = "are";
$dsWed = "Wednesday";
foreach ($csvLine in $csvInputs) {
$retailer = $csvLine.Node;
[string] $openWed = Unk-AMPM $csvLine.WED;
Write-Host "Value of openWed before split: "$openWed;
$openWedA = $openWed -split "-";
Write-Host "Value of openWedA[0]: "$openWedA[0];
Write-Host "Value of openWedA[1]: "$openWedA[1];
if ($openWedA[0] -eq 0 -or $openWedA[0] -eq 'Closed') {
$ohsWed = "closed";
} else { $ohsWed = $openWedA[0] + " to " + $openWedA[1]; }
Write-Host $srPRBN $retailer $srPRAN $ohsWed "on" $dsWed;
}
结果:
Value of openWed before split: 10:00–4:00
Value of openWedA[0]: 10:00–4:00
Value of openWedA[1]:
Our hours for PizzaPlace are 10:00–4:00 to on Wednesday
Value of openWed before split: 0
Value of openWedA[0]: 0
Value of openWedA[1]:
Our hours for BigPharma are closed on Wednesday
Value of openWed before split: 12:00-7:30
Value of openWedA[0]: 12:00
Value of openWedA[1]: 7:30
Our hours for GreenHouse are 12:00 to 7:30 on Wednesday
Value of openWed before split: 10:00-6:00
Value of openWedA[0]: 10:00
Value of openWedA[1]: 6:00
Our hours for Portapoty are 10:00 to 6:00 on Wednesday
【问题讨论】:
-
我没有发现任何问题?您是指
0的第二条记录吗?那是因为第二条记录在星期三列中有一个0... -
他的意思是
10:00-4:00的第一个结果。它应该被拆分,以便$openWedA每次都包含两个元素,但似乎它对那个不起作用,而对其他元素起作用。 -
是的,我完全错过了。
标签: windows powershell