首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不明白这段代码应该做什么吗?

不明白这段代码应该做什么吗?
EN

Stack Overflow用户
提问于 2022-08-09 00:47:02
回答 1查看 43关注 0票数 2

我从互联网上复制了这段代码,并正在对其进行审查,以进行可能的升级。然而,在我的一生中,我想不出这段片段的最后两行应该完成什么。事实上,我可以从我使用代码的运行程序中删除它们,并且程序继续正常工作。通常,我只是假设它是未被删除的剩余垃圾,但我在另一个程序中找到了相同的最后4行代码。

代码语言:javascript
复制
#------------------- Add ClipBoard Watcher Code --------------
# This script is a small update to the one found here:
# https://mnaoumov.wordpress.com/2013/08/31/cpowershell-clipboard-watcher/

# This started in this SO thread: https://stackoverflow.com/q/71014273/147637
# This is expected to run fine on Win10 and Win11 (and probably other versions)

# This script binds the OS functions to monitor when new items are put on the clipboard.
# It is a powershell script, that has been tested to work. 

$script:ErrorActionPreference = "Stop"
Set-StrictMode -Version Latest
function PSScriptRoot { $MyInvocation.ScriptName | Split-Path }
Trap { throw $_ }

注意:我在程序中搜索了对PsScriptRoot的引用,除了这个函数的名称之外,它们不存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-09 02:03:47

$script:ErrorActionPreference = "Stop"

Trap { throw $_ }

语句是冗余,因为将$ErrorActionPreference preference variable设置为Stop本身具有将非终止错误和语句终止错误提升为脚本终止(致命)错误的效果。

Set-StrictMode -Version Latest

-Version Latest production 代码中,使用带有 的是不明智的,因为如果它们包含额外的严格检查以确保代码可能失败,那么在未来的PowerShell版本中,代码可能会中断。

function PSScriptRoot { $MyInvocation.ScriptName | Split-Path }

如果没有这个函数定义,called,就等于死重,就像Abraham Zinala指出的那样。

顺便提一句:虽然函数的名称表明它试图复制automatic $PSScriptRoot variable的值(没有很好的理由,因为变量在v2之后就可用了),但它返回了一些不同的内容:$MyInvocation.ScriptName包含调用脚本的路径(如果有的话),而不是运行脚本的路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73285412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档