相关疑难解决方法(0)

确定当前PowerShell脚本位置的最佳方法是什么?

每当我需要引用一个公共模块或脚本时,我喜欢使用相对于当前脚本文件的路径,这样,我的脚本总能找到库中的其他脚本.

那么,确定当前脚本目录的最佳标准方法是什么?目前,我正在做:

$MyDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)
Run Code Online (Sandbox Code Playgroud)

我知道在模块(.psm1)中你可以使用它$PSScriptRoot来获取这些信息,但这不会在常规脚本(即.ps1文件)中设置.

获取当前PowerShell脚本文件位置的规范方法是什么?

powershell powershell-2.0

492
推荐指数
11
解决办法
46万
查看次数

当前正在执行的powershell脚本的路径

我如何在PowerShell中执行此操作.在批处理文件中,我会这样做:%~d0%~p0

powershell

65
推荐指数
3
解决办法
11万
查看次数

如何获取PowerShell脚本的文件系统位置?

我有一个PowerShell脚本D:\temp.

当我运行此脚本时,我希望列出该文件的当前位置.我该怎么做呢?

例如,此代码将在DOS批处理文件中完成; 我想将其转换为PowerShell脚本...

FOR /f "usebackq tokens=*" %%a IN ('%0') DO SET this_cmds_dir=%%~dpa
CD /d "%this_cmds_dir%"
Run Code Online (Sandbox Code Playgroud)

powershell batch-file

61
推荐指数
2
解决办法
8万
查看次数

在哪里放置PowerShell脚本?

(我不敢相信我实际上是在问这个问题,但是我当天没有脑力.)

我刚刚写了我的第一个严肃的PowerShell脚本,我真的很高兴.我计划每天使用它.我希望能够从Posh命令行调用它.我会给它一个动词 - 名词类型的名字,但是现在它是一个简单的.ps1,而不是那些采用params等的高级函数之一.

那么它应该去哪里以及如何从Posh命令行调用它?我打算写更多!他们应该去哪儿?

  • 它应该是我个人资料中的功能吗?
  • 它应该走在我的道路上吗?
  • 它会进入PSMODULEPATH吗?无论如何,那里有什么样的东西?它是递归的还是像普通的PATH一样?

你们在哪里放置PowerShell脚本以及如何组织它们?我在制作C#和C++工具方面有很多经验,知道如何命名它们以及放置它们的位置.而在另一个极端我已经做了很多糟糕的.bat文件,这些文件通常是独立的或堆放在某个文件夹的堆中.但PowerShell似乎非常不同.你可以非常快速地制作糟糕的.bat文件类型的东西,或者你可以用它来构建库和复杂的服务.

我真的很喜欢在开始之前我应该​​如何开始组织这些事情的一些想法.显然每个人都不一样,所以我希望能有一些讨论.谢谢!

powershell

50
推荐指数
4
解决办法
4万
查看次数

如何使用相对路径调用另一个PowerShell脚本?

我有以下目录树:

e:\powershell\services\This-Script-Here-Should-Call-Press any key to continue.ps1
e:\powershell\utils\Press any key to continue.ps1
Run Code Online (Sandbox Code Playgroud)

现在我想调用一个名为"按任意键继续.ps1"的脚本,它位于"utils"文件夹中,来自我在"services"文件夹中的脚本.我怎么做?我无法弄清楚相对路径.

我试着这样做:

"$ '.\..\utils\Press any key to continue.ps1'"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

powershell relative-path

16
推荐指数
3
解决办法
7万
查看次数

Shell脚本和自动化指南

我目前正在研究一些脚本,这些脚本可以自动化很多东西并且中等大小.我已经开始关注某些事情,使我的脚本具有通用性和可移植性,如:

  • 管理员登录以安排脚本
  • 使用绝对路径
  • 使用配置文件
  • 在开发时使用write-host并在部署(调试)时切换到日志记录

我最感兴趣的是知道是否有任何标准的脚本技术和指南,旨在使脚本开发人员生活简单.我在perl和powershell上工作,所以更受欢迎和赞赏的是更广泛的建议.

在此先感谢您的帮助.
steeluser

shell powershell scripting perl

4
推荐指数
1
解决办法
1289
查看次数

点源失败oin powergui

我试图在PowerGui 3.0中点源脚本文件,但我得到的只是;


术语".\ PowerShell.Common.ps1"未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.在D:\ TFS\SharePoint\Dev\Deploy\AutoSPInstaller\SP2010\AutoSPInstaller\AutoSPInstallerFunctionsCustom.ps1:6 char:31 +.\.PowerShell.Common.ps1 <<<< + CategoryInfo:ObjectNotFound:(.\ PowerShell.Common. ps1:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException


并且powerGui随后不在所述文件中提供我的脚本功能 - 在父脚本的上下文敏感列表中.

文件"PowerShell.Common.ps1"与AutoSPInstallerFunctionsCustom.ps1位于同一目录中.感谢您的帮助

powershell powergui

2
推荐指数
1
解决办法
2645
查看次数