使用PowerShell ISE,
如果我通过单击中的.ps1文件来打开下面的文件,当我使用绿色箭头运行它时,它会工作。如果使用file ->打开相同的文件,当我单击绿色箭头时会出现错误。
如果我通过单击并加载它来打开它,就可以了,所以什么(路径?)当我双击的时候会被设定不是另一种方式..。
让我澄清..。如果我以一种方式打开文件(双击),它‘编译’很好,如果我以另一种方式打开它( file -> open ),完全相同的文件不会‘编译’。我希望能弄清楚这是为什么。我的猜测是,它用于查找其他所需文件的路径变量通过两种打开方法设置不同(因为许多错误都“找不到”)。
下面是文件的代码(它基本上只是调用了一堆外部的东西)
###########################################################
# RUN (hit the green arrow) TO INITIALIZE
############################################################
############################################################
# set defaults
$path = Get-Location
$ProjectName = $path.Path
$ProjectName = $ProjectName.Replace("D:\Project Files\", "")
$ProjectName = $ProjectName.Replace("\_Powershell", "")
$ProjectName = $ProjectName.Replace("\WebApp", "")
$ProjectName = $ProjectName.Replace("\Webapp", "")
write-host "Project Name found: " $ProjectName
$Project = $ProjectName
$RootPath = 'D:\Project Files\' + $Project + '\WebApp'
$ModulePath = 'D:\Project Files\' + $Project + '\WebApp\_PowerShell'
############################################################
# call this one to remove and reload the modules (if modules are modified)
function ReloadTemplates {
RemoveLoadedModule WPK
RemoveLoadedModule JcdcAddFileToProjectGui
RemoveLoadedModule JcdcEoAndMap
RemoveLoadedModule JcdcEoAndMapGui
RemoveLoadedModule JcdcDal
RemoveLoadedModule JcdcDalGui
RemoveLoadedModule JcdcBll
RemoveLoadedModule JcdcBLLGui
RemoveLoadedModule JcdcView
RemoveLoadedModule JcdcViewGui
RemoveLoadedModule JcdcController
RemoveLoadedModule JcdcControllerGui
RemoveLoadedModule JcdcAutoMap
RemoveLoadedModule JcdcAutoMapGui
RemoveLoadedModule JcdcReport
RemoveLoadedModule JcdcReportGui
RemoveLoadedModule JcdcCv
RemoveLoadedModule JcdcCvGui
RemoveLoadedModule ReadWriteXML
# load the Templates
LoadTemplates
}
function RemoveLoadedModule {
param($PathAndName)
if(Get-Module -name $PathAndName)
{
Remove-Module $PathAndName
}
}
############################################################
# call this one to load the modules
function LoadTemplates {
Import-Module WPK
Import-Module "$ModulePath\JcdcAddFileToProjectGui.psm1"
Import-Module "$ModulePath\JcdcEoAndMap.psm1"
Import-Module "$ModulePath\JcdcEoAndMapGui.psm1"
Import-Module "$ModulePath\JcdcDal.psm1"
Import-Module "$ModulePath\JcdcDalGui.psm1"
Import-Module "$ModulePath\JcdcBll.psm1"
Import-Module "$ModulePath\JcdcBLLGui.psm1"
Import-Module "$ModulePath\JcdcView.psm1"
Import-Module "$ModulePath\JcdcViewGui.psm1"
Import-Module "$ModulePath\JcdcController.psm1"
Import-Module "$ModulePath\JcdcControllerGui.psm1"
Import-Module "$ModulePath\JcdcAutoMap.psm1"
Import-Module "$ModulePath\JcdcAutoMapGui.psm1"
Import-Module "$ModulePath\JcdcReport.psm1"
Import-Module "$ModulePath\JcdcReportGui.psm1"
Import-Module "$ModulePath\JcdcCv.psm1"
Import-Module "$ModulePath\JcdcCvGui.psm1"
Import-Module "$ModulePath\ReadWriteXML.psm1"
Initialize-AddFileToProject $RootPath $Project
Initialize-EOMAPGui $RootPath $Project
Initialize-DALGui $RootPath $Project
Initialize-BLLGui $RootPath $Project
Initialize-ViewGui $RootPath $Project
Initialize-ControllerGui $RootPath $Project
Initialize-AutoMapGui $RootPath $Project
Initialize-ReportGui $RootPath $Project
Initialize-CVGui $RootPath $Project
Initialize-XMLArguments
}
############################################################
# load the Templates on Run (when green arrow is clicked)
ReloadTemplates
############################################################
# Type one of the following in the command window
#Select-A + <tab> = Select-AddFileToProject -To create file to add to project
#Select-B + <tab> = Select-BLLWhatToBuild -To add a BLL
#Select-C + <tab> = Select-ControllerWhatToBuild -To add a Controller
#Select-D + <tab> = Select-DALWhatToBuild -To add a DAL
#Select-E + <tab> = Select-EoAndMapBuild -To add a Eo and Map
#Select-M + <tab> = Select-MapBuild -To add a AutoMap
#Select-R + <tab> = Select-ReportWhatToBuild -To add a Report
#Select-Vi + <tab> = Select-ViewWhatToBuild -To add a View
#Select-Vm + <tab> = Select-VmCvOrExcel -To add a CV, VM, D:\PowerShellTemplatesArgsor Excel这是错误
PS U:\> D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1
Project Name found: U:\
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcAddFileToProjectGui.psm1' was not loaded because no valid module file was found in any module direc
tory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:61 char:18
+ Import-Module <<<< "$ModulePath\JcdcAddFileToProjectGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...ProjectGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcEoAndMap.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:62 char:18
+ Import-Module <<<< "$ModulePath\JcdcEoAndMap.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...dcEoAndMap.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcEoAndMapGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:63 char:18
+ Import-Module <<<< "$ModulePath\JcdcEoAndMapGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...oAndMapGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcDal.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:64 char:18
+ Import-Module <<<< "$ModulePath\JcdcDal.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...ll\JcdcDal.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcDalGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:65 char:18
+ Import-Module <<<< "$ModulePath\JcdcDalGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...JcdcDalGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcBll.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:66 char:18
+ Import-Module <<<< "$ModulePath\JcdcBll.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...ll\JcdcBll.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcBLLGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:67 char:18
+ Import-Module <<<< "$ModulePath\JcdcBLLGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...JcdcBLLGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcView.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:68 char:18
+ Import-Module <<<< "$ModulePath\JcdcView.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...l\JcdcView.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcViewGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:69 char:18
+ Import-Module <<<< "$ModulePath\JcdcViewGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...cdcViewGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcController.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:70 char:18
+ Import-Module <<<< "$ModulePath\JcdcController.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...Controller.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcControllerGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:71 char:18
+ Import-Module <<<< "$ModulePath\JcdcControllerGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...trollerGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcAutoMap.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:72 char:18
+ Import-Module <<<< "$ModulePath\JcdcAutoMap.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...cdcAutoMap.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcAutoMapGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:73 char:18
+ Import-Module <<<< "$ModulePath\JcdcAutoMapGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...AutoMapGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcReport.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:74 char:18
+ Import-Module <<<< "$ModulePath\JcdcReport.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...JcdcReport.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcReportGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:75 char:18
+ Import-Module <<<< "$ModulePath\JcdcReportGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...cReportGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcCv.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:76 char:18
+ Import-Module <<<< "$ModulePath\JcdcCv.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...ell\JcdcCv.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\JcdcCvGui.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:77 char:18
+ Import-Module <<<< "$ModulePath\JcdcCvGui.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...\JcdcCvGui.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
Import-Module : The specified module 'D:\Project Files\U:\\WebApp\_PowerShell\ReadWriteXML.psm1' was not loaded because no valid module file was found in any module directory.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:78 char:18
+ Import-Module <<<< "$ModulePath\ReadWriteXML.psm1"
+ CategoryInfo : ResourceUnavailable: (D:\Project File...adWriteXML.psm1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
The term 'Initialize-AddFileToProject' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was includ
ed, verify that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:80 char:29
+ Initialize-AddFileToProject <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-AddFileToProject:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-EOMAPGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, veri
fy that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:81 char:24
+ Initialize-EOMAPGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-EOMAPGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-DALGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:82 char:22
+ Initialize-DALGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-DALGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-BLLGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:83 char:22
+ Initialize-BLLGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-BLLGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-ViewGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:84 char:23
+ Initialize-ViewGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-ViewGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-ControllerGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:85 char:29
+ Initialize-ControllerGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-ControllerGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-AutoMapGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, ve
rify that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:86 char:26
+ Initialize-AutoMapGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-AutoMapGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-ReportGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, ver
ify that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:87 char:25
+ Initialize-ReportGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-ReportGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-CVGui' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:88 char:21
+ Initialize-CVGui <<<< $RootPath $Project
+ CategoryInfo : ObjectNotFound: (Initialize-CVGui:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The term 'Initialize-XMLArguments' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At D:\Project Files\CIS3G\Webapp\_Powershell\ManualRun.ps1:89 char:28
+ Initialize-XMLArguments <<<<
+ CategoryInfo : ObjectNotFound: (Initialize-XMLArguments:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException当我打开一个文件时,是否有什么方法来设置路径,这样就不会发生这种情况?
每个项目都有不同版本的文件夹和文件,因为它用于生成特定于项目的代码.所以这个解决方案也需要为这个场景工作,请。
发布于 2012-09-12 03:49:14
不一定要理解您的问题,但是如果您想真正从脚本的位置开始,可以使用$MyInvocation自动变量。
$MyInvocation.MyCommand.Path将为您提供脚本的路径(.PS1文件),然后您可以使用Split-Path查找它的目录位置。我认为,在您的情况下,Get-Location并不总是返回您所考虑的路径。
发布于 2016-08-23 23:14:45
$ModulePath = 'D:\Project Files\' + $Project + '\WebApp\_PowerShell'
Import-Module "$ModulePath\JcdcAddFileToProjectGui.psm1"结果在
'D:\Project Files\U:\WebApp_PowerShell\JcdcAddFileToProjectGui.psm1' Windows在一条路径中不允许有多个驱动器号。你的有U:在里面。$Project = 'U:‘在评估$ModulePath时。这是PowerShell的起始工作目录。
底线是使用相对于脚本运行位置的路径。打开powershell时,它会从配置文件中设置起始位置,如果配置文件中没有默认位置,则设置默认位置。从文件启动时,它使用该文件的位置。
您似乎很难为每个项目编写一组单独的脚本+模块,等等,但是它们定义的名称在各个项目范围内是一致的。我建议您对每个脚本中的模块位置进行硬编码.
我还建议您重新考虑这种编码方式。改变某些东西一定是个噩梦。如果您创建了一个加载单个模块的脚本,该怎么办。然后为每个项目创建一个配置文件,并为您的脚本创建一个快捷方式,通过从配置文件读取的自定义部分加载主脚本。
发布于 2017-04-04 11:17:59
模块就像脚本一样位于同一个目录中?如果是真的,那么问题的原因就直接存在了。在开始或使用模块操作之前添加折页行:
Set-Location "<...>"然后让我们用脚本而不是<...>来键入文件夹的路径。
https://stackoverflow.com/questions/12376445
复制相似问题