在 PowerShell 和映射驱动器中读取 CSV
Read CSV in PowerShell and Map Drives
我希望从 .CSV 中读取数据,然后使用数据映射驱动器。该文件如下所示:
Location, UNC1, UNC2
USA, \Server1\Data, \Server1\Shared
EMEA, \Server2\Data, \Server2\Shared
棘手的部分是我想从 CSV 中读取数据,然后显示在列表框中(我猜我必须召唤 VBS?)但只在框中显示区域。然后当我选择区域时,它会将 2 个 UNC 映射到本地计算机。
我已经阅读了一些帖子并且需要 Import-CSV - 只是在寻找一个起点。
有什么建议吗?
通常我们会要求您尝试自己做一些事情,然后我们会在此过程中帮助您解决问题。下次您提出问题时,请尝试自己编写代码,然后在遇到困难时寻求帮助。
我只是为了好玩而快速地完成了这个,因为它非常简单,享受吧。
function Map-Drive(){
if($ComboBox1.text -eq "USA"){
New-PSDrive -Name K -PSProvider FileSystem -Root $csv.UNC1[0] -Persist -Scope Global
New-PSDrive -Name L -PSProvider FileSystem -Root $csv.UNC2[0] -Persist -Scope Global
}
if($ComboBox1.text -eq "EMEA"){
New-PSDrive -Name M -PSProvider FileSystem -Root $csv.UNC1[1] -Persist -Scope Global
New-PSDrive -Name N -PSProvider FileSystem -Root $csv.UNC2[1] -Persist -Scope Global
}
}
$csv = import-csv "\server\folder\test.csv" -Delimiter ","
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$Form = New-Object system.Windows.Forms.Form
$Form.ClientSize = '319,63'
$Form.text = "Regional Drive Map"
$Form.TopMost = $false
$ComboBox1 = New-Object system.Windows.Forms.ComboBox
$ComboBox1.text = "comboBox"
$ComboBox1.BackColor = "#d7ebff"
$ComboBox1.width = 143
$ComboBox1.height = 54
$ComboBox1.location = New-Object System.Drawing.Point(20,18)
$ComboBox1.Font = 'OCR A,12,style=Bold'
$Button1 = New-Object system.Windows.Forms.Button
$Button1.BackColor = "#eaeaea"
$Button1.text = "Map Drive"
$Button1.width = 107
$Button1.height = 30
$Button1.location = New-Object System.Drawing.Point(174,14)
$Button1.Font = 'OCR A,10'
$ComboBox1.DataSource = [system.Collections.ArrayList]$csv
$ComboBox1.DisplayMember = 'Location'
$Button1.Add_Click({Map-Drive})
$Form.controls.AddRange(@($ComboBox1,$Button1))
#Finally Show our GUI
$Form.ShowDialog()
我希望从 .CSV 中读取数据,然后使用数据映射驱动器。该文件如下所示:
Location, UNC1, UNC2
USA, \Server1\Data, \Server1\Shared
EMEA, \Server2\Data, \Server2\Shared
棘手的部分是我想从 CSV 中读取数据,然后显示在列表框中(我猜我必须召唤 VBS?)但只在框中显示区域。然后当我选择区域时,它会将 2 个 UNC 映射到本地计算机。
我已经阅读了一些帖子并且需要 Import-CSV - 只是在寻找一个起点。
有什么建议吗?
通常我们会要求您尝试自己做一些事情,然后我们会在此过程中帮助您解决问题。下次您提出问题时,请尝试自己编写代码,然后在遇到困难时寻求帮助。
我只是为了好玩而快速地完成了这个,因为它非常简单,享受吧。
function Map-Drive(){
if($ComboBox1.text -eq "USA"){
New-PSDrive -Name K -PSProvider FileSystem -Root $csv.UNC1[0] -Persist -Scope Global
New-PSDrive -Name L -PSProvider FileSystem -Root $csv.UNC2[0] -Persist -Scope Global
}
if($ComboBox1.text -eq "EMEA"){
New-PSDrive -Name M -PSProvider FileSystem -Root $csv.UNC1[1] -Persist -Scope Global
New-PSDrive -Name N -PSProvider FileSystem -Root $csv.UNC2[1] -Persist -Scope Global
}
}
$csv = import-csv "\server\folder\test.csv" -Delimiter ","
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$Form = New-Object system.Windows.Forms.Form
$Form.ClientSize = '319,63'
$Form.text = "Regional Drive Map"
$Form.TopMost = $false
$ComboBox1 = New-Object system.Windows.Forms.ComboBox
$ComboBox1.text = "comboBox"
$ComboBox1.BackColor = "#d7ebff"
$ComboBox1.width = 143
$ComboBox1.height = 54
$ComboBox1.location = New-Object System.Drawing.Point(20,18)
$ComboBox1.Font = 'OCR A,12,style=Bold'
$Button1 = New-Object system.Windows.Forms.Button
$Button1.BackColor = "#eaeaea"
$Button1.text = "Map Drive"
$Button1.width = 107
$Button1.height = 30
$Button1.location = New-Object System.Drawing.Point(174,14)
$Button1.Font = 'OCR A,10'
$ComboBox1.DataSource = [system.Collections.ArrayList]$csv
$ComboBox1.DisplayMember = 'Location'
$Button1.Add_Click({Map-Drive})
$Form.controls.AddRange(@($ComboBox1,$Button1))
#Finally Show our GUI
$Form.ShowDialog()