Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 当您编写Powershell函数时,它在内存中会持续多长时间?_Function_Powershell - Fatal编程技术网

Function 当您编写Powershell函数时,它在内存中会持续多长时间?

Function 当您编写Powershell函数时,它在内存中会持续多长时间?,function,powershell,Function,Powershell,当您编写Powershell函数时,它在内存中会持续多长时间。所以我开发了一个自定义函数并运行它来创建函数,这个函数是否永久保留在我的机器上,所以我需要做的就是调用这个函数?如果我打开和关闭机器并重新启动,我是否可以调用该函数等。其他用户是否需要先运行该函数才能使用它?该函数仅存在于执行其代码的会话中。一旦关闭Powershell进程,它就会消失。但是您可以重新加载函数定义,然后它就回来了。如果希望在每个powershell会话中都有可用的函数,请创建一个模块并将其添加到您的userprofil

当您编写Powershell函数时,它在内存中会持续多长时间。所以我开发了一个自定义函数并运行它来创建函数,这个函数是否永久保留在我的机器上,所以我需要做的就是调用这个函数?如果我打开和关闭机器并重新启动,我是否可以调用该函数等。其他用户是否需要先运行该函数才能使用它?

该函数仅存在于执行其代码的会话中。一旦关闭Powershell进程,它就会消失。但是您可以重新加载函数定义,然后它就回来了。如果希望在每个powershell会话中都有可用的函数,请创建一个模块并将其添加到您的userprofile()


该函数仅存在于执行其代码的会话中。一旦关闭Powershell进程,它就会消失。但是您可以重新加载函数定义,然后它就回来了。如果希望在每个powershell会话中都有可用的函数,请创建一个模块并将其添加到您的userprofile()


Powershell功能作为Powershell会话本身持续使用,因此当您在控制台中定义函数时,您仍然可以在该控制台运行时调用它,一旦关闭它,您将不得不再次定义该函数

但是,Powershell在系统中有特定的脚本,每当启动Powershell会话时都会运行这些脚本,这些脚本称为Powershell配置文件

因此,在您的情况下,如果将函数放入Powershell配置文件中,则在您打开Powershell会话时将直接定义该函数,并且该函数将被永久定义

看看这里

此代码将把您的函数放入配置文件中:

New-Item -Type Directory -Path "$home/Documents/WindowsPowerShell"
"<Your Function Here>" | Out-File -Force -FilePath $profile.CurrentUserAllHosts
新项目-类型目录-路径“$home/Documents/WindowsPowerShell”
“”| Out File-Force-FilePath$profile.CurrentUserAllHosts
现在,无论何时打开新的Powershell控制台(或运行任何Powershell进程),都将加载您的函数(即使在重新启动系统之后)

如果您有一个包含许多函数的powershell文件(.ps1),只需将其内容复制到$Profile.CurrentUserAllHosts,或将此代码放入$Profile.CurrentUserAllHosts中,即可在powershell启动时导入您的文件

Import-Module "<Your File (.ps1) Path Here>"
导入模块“”
更新


我忘了告诉您,您必须将Powershell隐私策略更改为“不受限制”,否则您将收到错误信息,告知您在该系统上禁用了运行脚本。

Powershell功能在Powershell会话本身运行时持续,因此当您在控制台中定义函数时,您仍然可以在该控制台运行时调用它,一旦关闭它,就必须再次定义该函数

但是,Powershell在系统中有特定的脚本,每当启动Powershell会话时都会运行这些脚本,这些脚本称为Powershell配置文件

因此,在您的情况下,如果将函数放入Powershell配置文件中,则在您打开Powershell会话时将直接定义该函数,并且该函数将被永久定义

看看这里

此代码将把您的函数放入配置文件中:

New-Item -Type Directory -Path "$home/Documents/WindowsPowerShell"
"<Your Function Here>" | Out-File -Force -FilePath $profile.CurrentUserAllHosts
新项目-类型目录-路径“$home/Documents/WindowsPowerShell”
“”| Out File-Force-FilePath$profile.CurrentUserAllHosts
现在,无论何时打开新的Powershell控制台(或运行任何Powershell进程),都将加载您的函数(即使在重新启动系统之后)

如果您有一个包含许多函数的powershell文件(.ps1),只需将其内容复制到$Profile.CurrentUserAllHosts,或将此代码放入$Profile.CurrentUserAllHosts中,即可在powershell启动时导入您的文件

Import-Module "<Your File (.ps1) Path Here>"
导入模块“”
更新


我忘了告诉您必须将Powershell隐私策略更改为“不受限制”,否则您将收到错误信息,告知您在该系统上禁用了运行脚本。

尝试时发生了什么?(提示:在关闭PowerShell窗口或重新启动之前保存函数的文本。)可能对您有用。尝试时发生了什么?(提示:在关闭PowerShell窗口或重新启动之前保存函数文本。)可能对您有用。