问题描述
所以我目前正在制作一个 PowerShell 脚本来安装在我们的 DC 上,它将在 Active Directory 中创建用户,它将使用函数来显示菜单和执行命令,并允许创建单个用户或 CSV。
我正在努力让它尽可能地证明白痴,并尽可能多地消除人为错误。我想要做的是使用文件资源管理器窗口提示用户,这样当 CSV 函数查找 CSV 本身的路径以导入时,用户首先在资源管理器中打开它,无需键入完整的文件路径。
这是我目前的 CSV 函数以供参考:
library(shiny)
ui <- fluidPage(
#Dropdown
selectInput("ISvModels","Choose:",choices = c(1000,5000)),#TextBox
textoutput("mytext")
)
server <- function(input,output,session) {
#Prepare TextBox Content
output$mytext <- renderText({
qtModels <- length(input$ISvModels)
vtModels <- paste0("M",1:qtModels," n = ",input$ISvModels," scenarios")
return(vtModels)
})
}
shinyApp(ui,server)
这就是我的问题,这是一个好主意还是每次都用更新的路径编辑脚本会更好?
感谢您对此的帮助!
迪伦
解决方法
我使用以下函数,可调用为例如 $FileName = Select-File -StartingFolder "C:\Users\Michael\Documents" -NameFilter "CSV Files (*.CSV)|*.CSV"
function Select-File {
[CmdletBinding()]
param(
[Parameter(ParameterSetName="Single")]
[Parameter(ParameterSetName="Multi")]
[Parameter(ParameterSetName="Save")]
[string]$StartingFolder = [environment]::getfolderpath("mydocuments"),[Parameter(ParameterSetName="Single")]
[Parameter(ParameterSetName="Multi")]
[Parameter(ParameterSetName="Save")]
[string]$NameFilter = "All Files (*.*)|*.*",[Parameter(ParameterSetName="Single")]
[Parameter(ParameterSetName="Multi")]
[Parameter(ParameterSetName="Save")]
[switch]$AllowAnyExtension,[Parameter(Mandatory=$true,ParameterSetName="Save")]
[switch]$Save,ParameterSetName="Multi")]
[Alias("Multi")]
[switch]$AllowMulti
)
if ($Save) {
$Dialog = New-Object -TypeName System.Windows.Forms.SaveFileDialog
} else {
$Dialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog
if ($AllowMulti) {
$Dialog.Multiselect = $true
}
}
if ($AllowAnyExtension) {
$NameFilter = $NameFilter + "|All Files (*.*)|*.*"
}
$Dialog.Filter = $NameFilter
$Dialog.InitialDirectory = $StartingFolder
[void]($Dialog.ShowDialog())
$Dialog.FileNames
}