powershell - Powershell 从 csv 批量创建卷访问路径
问题描述
如果您以前这样做过,请提供帮助。我有一个脚本可以在我输入值时工作,但是在从 csv 中提取值时会出现错误,因为值无法识别。
我尝试了不同的方法来连接从 .csv 中提取的值(例如使用连接路径),但似乎仍然没有使 add-partitionaccesspath 接受来自 csv 的值。这肯定不正确吗?以下代码创建了驱动器并创建了要挂载的文件夹,并对所有驱动器进行分区、格式化和标记。但是这些文件夹不是作为挂载点创建的
$localmachine = $env:COMPUTERNAME
$csv = '\\sharedpath\disks.csv'
foreach ($Row in (import-csv $csv | Where-Object {$_.server -eq $localmachine} )){
$Letter = $row.Letter
$disk1 = $Row.disk1
$disk2 = $Row.disk2
$disk3 = $row.disk3
$disk4 = $row.disk4
$label1 = $row.label1
$label2 = $row.label2
$label3 = $row.label3
$label4 = $row.label4
New-Partition –DiskNumber $disk1 -DriveLetter $Letter -UseMaximumSize
Format-Volume -DriveLetter $Letter -FileSystem NTFS -NewFileSystemLabel $label1 –allocationUnitSize 65536 -Confirm:$false
New-Partition –DiskNumber $disk2 -UseMaximumSize
$part2 = Get-Partition -DiskNumber $disk2
$accessP2 = join-path $Letter -ChildPath $label2
New-Item –itemType Directory –path $accessP2
$Part2 | Format-Volume –FileSystem NTFS -NewFileSystemLabel $label2 –allocationUnitSize 65536 –Confirm:$false
$Part2 | Add-PartitionAccessPath –AccessPath $accessP2
New-Partition –DiskNumber $disk3 -UseMaximumSize
$part3 = Get-Partition -DiskNumber $disk3
$accessP3 = join-path $Letter -ChildPath $label3
New-Item –itemType Directory –path $accessP3
$Part3 | Format-Volume –FileSystem NTFS -NewFileSystemLabel $label3 –allocationUnitSize 65536 –Confirm:$false
$Part3 | Add-PartitionAccessPath –AccessPath $accessP3
New-Partition –DiskNumber $disk4 -UseMaximumSize
$part4 = Get-Partition -DiskNumber $disk4
$accessP4 = join-path $Letter -ChildPath $label4
New-Item –itemType Directory –path $accessP4
$Part4 | Format-Volume –FileSystem NTFS -NewFileSystemLabel $label4 –allocationUnitSize 65536 –Confirm:$false
$Part4 | Add-PartitionAccessPath –AccessPath $accessP4
}
预期的结果是它应该以 e:\foldername 的格式将 $accessP* 值分配给 Add-PartitinAccessPath -AccessPath(如下面的 csv 文件中所列举),但是即使 $accessp* 总是返回正确的字符串值,例如e:\staging_log01 当脚本运行每次迭代的最后一行时会出错
$Part# | Add-PartitionAccessPath –AccessPath $accessP#
但如果我输入
$Part4 | Add-PartitionAccessPath –AccessPath staging_log01
有用!!!这是怎么回事?
csv文件是这样格式化的吗?字母服务器disk1 label1 disk2 Label2 disk3 Label3 E:server1 1 mount 2 STAGING_Log01 3 STAGING_System01 E:server2 1 mount 2 AGING_Log01 3 STAGING_Log01
解决方案
推荐阅读
- c# - WPF ComboBox 选定项到字符串
- r - Dplyr 和 Tidyverse => 有条件地替换所有变量(循环数据集)
- java - For 循环很慢 - Java
- r - 是否可以在 R 中没有 for 循环的情况下运行 2^[列号]?
- elasticsearch - 禁用 kibana 默认端口 5601
- r - R 包 Ranger 产生与变量“无”相关的错误
- clang - 如何在 LLVM 中完全集成 LLVM 通道(仪器部分 + 运行时库部分)?
- mysql - 在 MYSQL QUERY 上输出逗号而不是 DOT
- node.js - Jest 没有在回调中完成对 done() 的测试
- java-8 - 为什么 Vavr Either 不能识别 map() 函数的参数?