Powershell 使用变量设置位置?
我对下面的脚本有一些问题。我正在尝试做一个Windows窗体,带有2个文本框。 $CaseName包含案例名称,它将在Server1中的驱动器K内创建一个文件夹 $InputBox包含将在案例名称内创建的子文件夹的名称 我相信我在以下几行有问题:Powershell 使用变量设置位置?,powershell,Powershell,我对下面的脚本有一些问题。我正在尝试做一个Windows窗体,带有2个文本框。 $CaseName包含案例名称,它将在Server1中的驱动器K内创建一个文件夹 $InputBox包含将在案例名称内创建的子文件夹的名称 我相信我在以下几行有问题: 它在K内创建目录,但不在$CaseName内创建目录 Set-Location "\\Server1\K$" New-Item $CaseName.Text -type directory Set-
它在K内创建目录,但不在$CaseName内创建目录
Set-Location "\\Server1\K$"
New-Item $CaseName.Text -type directory
Set-Location "\\Server1\K$\$CaseName\"
错误消息
Set-Location : Cannot find path '\\Server1\K$\111\' because it does not exist.
At C:\APPS\Scripts\CreateFolder - Test.ps1:54 char:9
+ Set-Location "\\Server1\K$\111\"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (\\Server1\K$\111\:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
这是完整的脚本
# Load required assemblies
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# Drawing form and controls
$CreateFolder = New-Object System.Windows.Forms.Form
$CreateFolder.Text = "Create Folder"
$CreateFolder.Size = New-Object System.Drawing.Size(800,400)
$CreateFolder.FormBorderStyle = "FixedDialog"
$CreateFolder.TopMost = $true
$CreateFolder.MaximizeBox = $false
$CreateFolder.MinimizeBox = $false
$CreateFolder.ControlBox = $true
$CreateFolder.StartPosition = "CenterScreen"
$CreateFolder.Font = "Segoe UI"
# CaseName
$CaseName = New-Object System.Windows.Forms.TextBox
$CaseName.Location = New-Object System.Drawing.Size(20,50)
$CaseName.Size = New-Object System.Drawing.Size(300,25)
$CaseName.ScrollBars = "Vertical"
$CreateFolder.Controls.Add($CaseName)
# Inputbox
$Inputbox = New-Object System.Windows.Forms.TextBox
$Inputbox.Multiline = $True;
$Inputbox.Location = New-Object System.Drawing.Size(20,100)
$Inputbox.Size = New-Object System.Drawing.Size(300,200)
$Inputbox.ScrollBars = "Vertical"
$CreateFolder.Controls.Add($Inputbox)
# adding a label to my form
$label_message = New-Object System.Windows.Forms.Label
$label_message.Location = New-Object System.Drawing.Size(8,8)
$label_message.Size = New-Object System.Drawing.Size(240,32)
$label_message.TextAlign = "MiddleCenter"
$label_message.Text = "Create Folders!!"
$CreateFolder.Controls.Add($label_message)
# create folders from LAB
# add a button ti create folder
$button_ClickMe = New-Object System.Windows.Forms.Button
$button_ClickMe.Location = New-Object System.Drawing.Size(350,120)
$button_ClickMe.Size = New-Object System.Drawing.Size(240,32)
$button_ClickMe.TextAlign = "MiddleCenter"
$button_ClickMe.Text = "Create Folders Now!!!"
$button_ClickMe.Add_Click({
Set-Location "\\Server1\K$"
New-Item $CaseName.Text -type directory
Set-Location "\\Server1\K$\$CaseName\"
$button_ClickMe.Text = "Folders were created"
ForEach ($Folder in $Inputbox.lines) {
New-Item $Folder -type directory
}
})
$CreateFolder.Controls.Add($button_ClickMe)
# add a button to save as
$button_ClickMe2 = New-Object System.Windows.Forms.Button
$button_ClickMe2.Location = New-Object System.Drawing.Size(350,80)
$button_ClickMe2.Size = New-Object System.Drawing.Size(240,32)
$button_ClickMe2.TextAlign = "MiddleCenter"
$button_ClickMe2.Text = "Location to create folders"
$button_ClickMe2.Add_Click({
ForEach ($Folder in $Inputbox.lines) {
New-Item $Folder -type directory
}
})
$CreateFolder.Controls.Add($button_ClickMe2)
# show form
$CreateFolder.Add_Shown({$CreateFolder.Activate()})
[void] $CreateFolder.ShowDialog()
谢谢你,马蒂亚斯,你的回答解决了这个问题 尝试更改
设置位置“\\Server1\K$\$CaseName\”
->设置位置“\\Server1\K$\$($CaseName.Text)\”