$wshell = New-Object -ComObject Wscript.Shell
$wshell.Popup("********Please Select the SOURCE Directory********",0,"Directory Selecter 5000",0x1)
Function Get-Folder($initialDirectory)
{
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.rootfolder = "MyComputer"
if($foldername.ShowDialog() -eq "OK")
{
$folder += $foldername.SelectedPath
}
return $folder
}
$a = Get-Folder
$wshellb = New-Object -ComObject Wscript.Shell
$wshellb.Popup("********Please Select the DESTINATION Directory********",0,"Directory Selecter 5000",0x1)
Function Get-Folder($initialDirectory)
{
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.rootfolder = "MyComputer"
if($foldername.ShowDialog() -eq "OK")
{
$folder += $foldername.SelectedPath
}
return $folder
}
$b = Get-Folder
Set-Content -Path "C:\script\scripts\script data.txt" -Value "$a" -Force
Set-Content -Path "C:\script\scripts\script data2.txt" -Value "$b" -Force
因此,此脚本可在ISE中使用,如果我将其复制/粘贴到CLI中就可以了。如果我导航到powershell CLI中的文件夹并从那里运行它,则会出现此错误:
该错误再次出现两次,对于应该弹出的文件夹选择窗口的每个实例一次。
我从运行对话框,快捷方式甚至从CLI尝试了-STA,它总是给我该错误。我已经使用[System.Threading.Thread]::CurrentThread.GetApartmentState()验证了powershell的开放实例是STA。我可以打开一个Powershell CLI并导航到该脚本所在的文件夹,调用该脚本,它将给我错误,然后可以将其复制\粘贴到相同的CLI中,并且可以正常工作。我还右键单击了资源管理器中的文件,然后选择“使用powershell运行”,这也给了我错误。我已经提升了CLI,以查看是否成功没有成功。
我担心这是一个小小的疏忽,希望有人能帮到我。
使用v1.0
窗户10
最佳答案
找不到类型[System.Windows.Forms.FolderBrowserDialog]是由于未加载程序集。
用装配件
Add-Type -AssemblyName "System.Windows.Forms"
关于powershell - 脚本可以在ISE中运行,而不能在某些Powershell CLI中运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49887553/