如何在范围末尾自动调用 Pop-Location

2024-04-16

假设我有一个简单的范围,以 Push-Location 和 Pop-Location 结尾:

Function MyFunction($Location)
{
  Push-Location $Location
  # do other stuff here
  Pop-Location
}

有没有什么方法可以将其设置在范围的开头,这样我就不必记住将 Pop-Location 放在末尾?像这样的事情:

Function MyFunction($Location)
{
  Setup-BothPushAndPopHere $Location
  # do other stuff here
  # at the end of the scope, Pop-Location is automatically called
}

简短回答:不。

我的看法Push-Location and Pop-Location是您通常应该避免它们,并调整您的脚本以在命令中使用路径名;换句话说,而不是:

Push-Location $Location
Get-ChildItem
Pop-Location

Just do:

Get-ChildItem $Location

(简化示例)

如果必须使用该模式,请考虑try/finally:

Push-Location $Location
try {
    # ...
} finally {
    Pop-Location
}

因为这有助于解决意外异常或用户中断程序执行。

我通常使用try/finally当代码超出我的控制范围时的模式;最常在加载时SQLPS模块,因为它将当前位置更改为 SQL Server 提供程序,根据我的经验,这会导致使用当前位置的所有内容变得更慢。

As Eris https://stackoverflow.com/users/2100227/eris指出,它在处理本机应用程序时也很有用。如果用空格转义路径名周围的引号很痛苦,或者应用程序无论如何都无法正确处理它,则尤其如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在范围末尾自动调用 Pop-Location 的相关文章

随机推荐

  • 应用程序的私有文件

    我想创建一个文件来存储一些只能由我的应用程序访问的数据 外部用户不应该能够访问该文件或对其进行任何更改 我将在文件中存储一个密钥 该密钥可能由我的应用程序访问需要时随时使用应用程序 使用Environment getDataDirector
  • Meteor如何调用Meteor.methods()中定义的方法?

    我将方法分配给 Meteor 服务器 如下所示 在 bootstrap js 中 Meteor startup function Meteor methods foo function return 1 bar function QUEST
  • Direct2D 位图画笔拉长

    我必须在屏幕外位图上绘制形状 但是当我尝试渲染位图时遇到一个奇怪的问题 这就是图像的显示方式 这就是我查看位图的方式 以下是我用来创建位图画笔的代码 const auto size renderTarget gt GetSize const
  • 内容更改时停止文本小部件滚动

    我有一个带有滚动条的文本小部件 看起来像这样 self myWidget Text root self myWidget configure state DISABLED self myWidget pack self myWidgetSc
  • 在线性回归中使用数据框的列名称作为预测变量

    我正在尝试遍历 data frame 的所有列名称并使用它们 作为线性回归中的预测变量 我目前拥有的是 for i in 1 11 for j in 1 11 if i j var1 names newData i var2 names n
  • 奇怪的错误 TypeError:无法在 onSuccessMapUnitFields 处读取 null 的属性“setValue”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 这段代码运行得很好 直到我决定再添加 4 行代码 所以我删除了它们 但我收到了这个错误 有趣的是我在Form onloa
  • 防止在弹出窗口外部单击时关闭 SweetAlert

    我在用甜蜜警报电子商务应用程序中我的产品视图上的弹出窗口有两个按钮 一个用于进入购物车视图 另一个用于重新加载视图 但是 当用户在弹出窗口外部单击时 弹出窗口会自动关闭 我已尝试以下属性来阻止其关闭 但没有任何作用 hideOnOverla
  • 将多个模型和自定义字段添加到 Django Rest Framework 中的 json 响应

    我是 Python Django 编程新手 在我正在做的个人项目中遇到了一些问题 我的问题是 我想根据应用程序的不同模型返回自定义响应 一些值将来自自定义查询 其他值是模型本身的一部分 因此 我的应用程序中有以下模型 删除了一些字段以免帖子
  • CodeIgniter 中的超级对象是什么?

    我在 超级对象 中看到了 超级对象 这个词代码点火器手册 http codeigniter com user guide general creating libraries html 但该术语没有详细解释 那么 CodeIgniter 中
  • 在c中动态增加数组(int *)的大小

    我想动态地将数字添加到c中的数组中 我的想法是分配一个大小 1 的新数组 添加数字 释放根数组并将指针从 temp 更改为根数组 像这样 void addNumber int a int size int number size size
  • Django 根据日期时间按日期进行分组计数

    我正在尝试计算用户从日期时间字段注册的日期 在数据库中 它存储为 2016 10 31 20 49 38 但我只对日期 2016 10 31 感兴趣 原始 SQL 查询是 select DATE registered at register
  • Javascript Gallery 自动使用页面上的所有大图像

    我有一个网站 一个大页面上有很多图像 最简单的是我可以包含一个脚本 它自动搜索同一页面并使用所有大于 100 像素的图像来创建幻灯片库 有人知道这样一个简单的脚本 不需要任何编程技能吗 我发现这是一个开始 jQuery 获取大于特定尺寸的元
  • 创建以字母数字开头的 Oracle 序列

    我想创建以字符开头的序列inv并增加 1 的价值观 INV01 INV02 INV03 etc CREATE SEQUENCE invoice nun START WITH INV INCREMENT BY 1 只能创建整数值序列 所以声明
  • JSF @ViewScoped Bean 状态丢失

    我正在将 ViewScoped Bean 用于小型 CRUD 应用程序 我有一个编辑和查看页面 但是当我单击按钮 编辑 时 它将呈现编辑表单 编辑表单出现后 保存按钮或取消按钮不会调用该函数 而是呈现整个页面 actionListener
  • Extjs组合框:隐藏下拉列表中的选定值

    我正在使用 ExtJS 4 并寻找一种可以从组合的下拉列表中隐藏当前选定值的方法 因此 代替这个 当前在组合框中选择 阿拉斯加 我希望值列表如下所示 就我而言 组合框是不可编辑 即您不能输入任意值 我认为两次显示所选值没有多大意义 一次在输
  • 使用 Laravel 5 (Lumen) 中的基本路径

    我在一个项目中使用 laravel 在我的本地计算机上 我必须访问的服务器只是 laraveltest dev 当我打开这个 URL 时 项目运行正常 没有任何问题 但是 当我将其上传到测试服务器上时 这些内容位于子文件夹中 如下所示 la
  • xdebug.so:未定义的符号:zend_ce_error

    我需要调试旧的 php 版本 PHP 5 6 22 cli built Jun 29 2016 14 26 09 Copyright c 1997 2016 The PHP Group Zend Engine v2 6 0 Copyrigh
  • 如何加载之前存储的svm分类器?

    我正在 Visual Studio 中使用 openCV SVM OpenCV 2 4 4 0 我训练它 mySVM train trainingDataMat labelsMat Mat Mat params 已保存 mySVM save
  • 用通用函数替换普通函数

    我想将 elt nth 和 mapcar 等名称与我正在原型设计的新数据结构一起使用 但这些名称指定普通函数 因此我认为需要将其重新定义为通用函数 重新定义这些名称可能是一种不好的形式 有没有办法告诉 defgeneric 不要生成程序错误
  • 如何在范围末尾自动调用 Pop-Location

    假设我有一个简单的范围 以 Push Location 和 Pop Location 结尾 Function MyFunction Location Push Location Location do other stuff here Po