尝试创建一个脚本,该脚本将读取包含许多包含客户数据的“配对”数据集的目录的内容,对于每个客户,将有2个数据集,其命名约定在表单中一致显示: CustomerNo_DataType .csv 其中 CustomerNo 将始终为数字字符串值。
我已经写了这个脚本的粗略版本,客户编号是硬编码的,所以现在我正在努力改进 - 这就是我到目前为止所做的:
$files = Get-ChildItem "Path-to-data-files"
$files = $files.FullName
for ($i=0; $i -le $files.Count; $i++){
$thisFile = $files[$i].Split("\")
这给我留下了一个数组,其中完整的路径名被分解为组件,所以我从数组的最后一个位置获取文件名
$thisFile = $thisFile[$thisFile.Count - 1]
...
}
我想使用客户号来创建哈希表,所以如果文件名中的客户号码是12345,那么我想创建一个名为$12345
的哈希表 - 我访问该值时没有任何问题,只是不知道如何用它来命名。
答案 0 :(得分:0)
使用Split-Path
获取路径的文件元素:
$file = Split-Path 'C:\path\to\some\file.txt' -Leaf
如果由于某种原因需要从变量中定义变量名称,请使用New-Variable
。
$customerNo = '12345'
New-Variable -Name $customerNo -Value @{}
但是,我不建议创建一堆动态命名的变量。如果你创建一个父母"它通常会更容易处理。动态名称的哈希表。如果需要,可以在其中包含嵌套的哈希表:
$customerNo = '12345'
$customers = @{}
$customers[$customerNo] = @{}