PowerShell 和全局函数

2024-01-01

为什么下面的代码不起作用?根据这篇文章,全局的用法应该是正确的:http://technet.microsoft.com/en-us/library/ff730957.aspx http://technet.microsoft.com/en-us/library/ff730957.aspx

Function global:writeLog {
    param($logType, $logString, $logFile)

    $fileStream = New-Object IO.FileStream $logFile ,'Append','Write','Read'
    $streamWriter = New-Object System.IO.StreamWriter $fileStream

    $time = get-date -Format "hh:mm:ss"
    $streamWriter.writeLine("[${time}][$logType] ${logString}")

    $streamWriter.close()

}

$temp = {
    writeLog -logType "INFO" -logString "Test" -logFile "d:\scripts\powershell\logtest.txt"
}

Start-Job -ScriptBlock $temp 
get-job | receive-job -AutoRemoveJob -Wait

这是powershell抛出的异常

The term 'writeLog' 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.
    + CategoryInfo          : ObjectNotFound: (writeLog:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    + PSComputerName        : localhost

从文档Start-Job:

Windows PowerShell 后台作业“在后台”运行命令,而不与当前会话交互。

因此,当前会话范围被忽略。

简单的解决方案:在脚本块内定义函数。

$JobScript = { 
    function write-log {
        ....
    }
    write-log <parameters>
}

或者,检查以下相关问题:

Powershell:将参数传递给作业 https://stackoverflow.com/questions/4472284/powershell-passing-parameters-to-a-job

开始作业中的变量 https://stackoverflow.com/questions/10196489/variables-in-start-job

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

PowerShell 和全局函数 的相关文章

  • Powershell脚本将多个远程地址添加到防火墙规则

    我正在尝试编写一个脚本 该脚本将循环遍历本地防火墙规则并更新远程地址表 这是我到目前为止所拥有的 它不起作用 应该很简单 所以不确定发生了什么 该脚本运行时没有错误 但实际上并没有更新任何内容 name Get NetFirewallRul
  • 函数的参数太少,不能用作函数----以 C 开头

    你好 我是一名初学者 我有一份初级 C 课的作业 我写的程序不断出现错误 特别是用我的函数编写的程序 这是我的程序 include
  • 将带有参数的函数作为派生类绑定

    我正在尝试绑定std function与派生论证 我想要绑定的函数如下所示 void Application myFunction Derived derived 我试图传递给这个函数 但绑定 的函数如下所示 void Storage re
  • 如何使用卸载路径卸载 MSI

    我正在尝试获取一组应用程序的卸载路径并卸载它们 到目前为止 我得到了卸载路径列表 但我很难真正卸载这些程序 到目前为止我的代码是 app msi1 msi2 msi3 msi4 Regpath HKLM Software Microsoft
  • 如何在函数和循环中使用 data.table?

    在评估效用时data table vs dplyr 一个关键因素是在函数和循环中使用它的能力 为此 我修改了本文中使用的代码片段 data table 与 dplyr 一个可以做得很好而另一个不能做或做得很差吗 https stackove
  • 最终类中的静态函数是否隐式最终?

    我的问题基本上与this https stackoverflow com q 8766476 3882565一 但这是否也适用于static功能 我想了解 编译器是否处理所有static函数在一个final类为final 是否添加final
  • 如何从powershell获取主机名?

    我如何获得hostname https stackoverflow com q 42014215 262852 for dur来自 powershell PS home thufir powershell gt PS home thufir
  • Typescript 从传递的函数返回类型推断返回类型

    我可能正在尝试实现不可能的目标 但事情就这样了 我想定义一个函数 function A 它将返回与传递给函数 A 的参数的新函数相同的类型 e g export function test
  • C函数指针混淆

    这两个声明有什么区别 int operate int func int int int a int b return func a b and int operate int func int int int a int b return
  • 在 C++ 中定义虚拟 get 和 set 函数是否被认为是一个好习惯?

    如果我有一个简单的 2 级类层次结构 例如 level 1 class Spare Part private string name double price public Spare Part string getName return
  • 如何在不安装 AWS SDK 的情况下通过 Powershell 从 S3 下载文件?

    我想使用 Windows Powershell 从我的 AWS S3 存储桶下载文件 我无法安装任何 AWS 软件 需要创建一个 API 才能访问 AWS S3 中的文件 我使用Postman测试该文件是否可访问并且成功 鉴于这一成功 我尝
  • 在函数中调用其他列的控制流程

    我正在尝试在给定条件的情况下连接到函数中的其他列 本质上 我想让数据框在给定条件的情况下从长到宽 其中一列中的这些值是NA相对于同一行中具有值的另一列 转动NAs转化为特定的数字 尽管分配的值必须是特定于列的 因此 如果2010 has N
  • Start-Job 将 XML 对象传递给 -ArgumentList 在 Powershell V2 和 V3 中工作方式不同

    我正在使用 Powershell v3 在 Windows Server 2012 上测试我的应用程序的部署脚本 该脚本在使用 Powershell v2 的 Win Server 2008 R2 和 Win 7 上运行良好 我现在遇到的问
  • 如何使用PowerShell批量调用Update-Database

    我们使用 Azure 弹性池生成多个客户端数据库和一个引用客户端数据库的主数据库 我们已经拥有多个数据库 并且正在开发新版本的代码 我们使用 EF6 代码优先 当我们更改模型 添加属性 时 我们创建迁移文件并需要调用Update Datab
  • c++ - <未解析的重载函数类型>

    在我的班级里叫Mat 我想要一个将另一个函数作为参数的函数 现在我有下面 4 个函数 但是在调用 print 时出现错误 第二行给了我一个错误 但我不明白为什么 因为第一行有效 唯一的区别是功能f不是班级成员Mat but f2是 失败的是
  • Powershell从Linux客户端连接到Windows远程

    我正在尝试从我的 Linux 工作站远程连接到 Windows 计算机 我在 Arch Linux 工作站上安装了 powershell 目前正在尝试连接到主机 在主机上 Enable PSRemoting 然后允许所有主机Set Item
  • 如何设置文件的LastWriteTime属性?

    我想更改使用此脚本生成的文件的创建日期 clientname Read Host Enter the client name path Read Host Enter the complete path of bak files time
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • 需要了解Javascript函数提升示例

    我阅读了 Javascript 提升的概念 它非常令人困惑 但我看到了一些示例并了解了提升的实际作用 所以基本上 提升是 JavaScript 的默认行为 即将所有声明移动到当前作用域的顶部 当前脚本或当前函数的顶部 但我无法理解以下实现
  • “volatile void function( ... )” 做了什么?

    我见过从语法角度来看 C 函数中 volatile 关键字有多少种用法 https stackoverflow com questions 7643528 how many usage does volatile keyword have

随机推荐

  • 茉莉花模拟ajax与JSON

    我尝试模拟 存根我的 ajax 调用 但看起来它只适用于文本 当我尝试使用对象设置响应时 不会调用我的完成回调 jasmine Ajax stubRequest some url 1 andReturn responseText respo
  • 具有自定义边框颜色的 UIButton,iPhone

    我想创建矩形的自定义 UIButton 为此 我使用矩形视图作为 UIButton 的背景 并将 UIbuttons 背景颜色设置为clearcolor 但 UIbutton 的边框仍然保留 关于如何使边框消失有什么建议吗 感谢您提前提供任
  • 如何通过TcpClient获取页面?

    我正在尝试通过 TCP 流向页面发送 GET 请求 我的代码如下所示 public class SocketLevelWebClient public string SendWebRequest string url string requ
  • 推送通知不起作用

    我是安卓新手 我已经尝试过文档中给出的示例 但我没有收到任何推送通知 只有收到通知图标 但没有内容和标题 谁能帮我清关吗 推送通知在模拟器中是否有效 在此示例中 我找到了一个名为 Resultactivity 的类 使用此的目的班级 我给出
  • 通过 as.character() 将列表强制为字符时为什么会出现这种行为?

    在 大部分 回答的过程中this https stackoverflow com q 7591295 324364问题 我偶然发现了一些我觉得我之前应该已经看过的东西 假设您有一个列表 l lt list a 1 3 b letters 1
  • 从未引用的程序集加载时,Application.LoadComponent 失败

    我有一个 WPF 应用程序 需要能够加载预定义的UserControl基于 Uri 我在用着Application LoadComponent Uri 来做到这一点 但它现在正在抛出一个IOException with Cannot loc
  • Fabric.js 逐像素操作 Image 对象来改变颜色

    我想获取 Fabric Image 对象的图像数据 以循环遍历每个像素 并在给定颜色为另一种给定颜色时更改其颜色 但是我不想获取整个画布的数据 仅针对该特定对象 像这样的东西 changeColor object targetColor r
  • 如何在openpyxl图表中显示日期格式

    我有一个Excel文件 Excel 内容 我使用openpyxl绘制图表 但显示的日期格式不正确 Chart my code from openpyxl import load workbook from openpyxl import W
  • 如何操作Webkit窗口内的页面内容(使用QT和QTWebKit)?

    请帮助我理解 如何操作 qt webkit 窗口中显示的 html 内容 我需要简单的操作 例如填写输入字段和单击按钮 有这方面的建议 文章吗 请查看下面的示例 它用QWebView http chaos troll no tavestbo
  • 批处理脚本使setlocal变量被其他批处理文件访问

    我正在编写一个批处理文件来从文件中读取路径并将其设置为环境变量 该批处理文件将被许多其他批处理文件使用 调用 来获取变量 在编写批处理文件时 我遇到了变量扩展的问题 所以我使用了SETLOCAL ENABLEDELAYEDEXPANSION
  • 当我使用 GM_setValue 时,Greasemonkey/Tampermonkey 对我的 jQuery 对象做了什么?

    我正在尝试使用以下命令将 DOM 元素选择到 Tampermonkey 变量中GM setValue 以便稍后在不同页面上注入 我创建了一个示例 我可以使用普通 jQuery 来执行此操作 clone 但是当我将其设置为 Tampermon
  • Python 中的协程:最佳实践

    我想知道在 Python 3 中编写协程的最佳实践是什么 我正在开发基本方法 这些方法应该接受一些输入 使用 send 方法 对此输入执行计算 然后产生输出 我发现的第一种方法基本上是执行以下操作 def coroutine func da
  • 如何从 Access 中的对象获取准确的 LastUpdated 日期/时间?

    我正在尝试检索最近更新时间来自 Access 对象的日期 有时它返回 DateCreated 值 我看到相同的查询结果MSys对象 SELECT MSysObjects Name Switch Type 5 Query Type 32768
  • 如何在 UITests 下对单元格重新排序?

    随着UITests and UITableView我需要对单元格重新排序 是否可以 我试过myTable swipeDown 但它是在不响应重新排序的单元格中调用的 我怎样才能做到这一点 有可能吗 如果您已正确设置自定义单元格集的辅助功能属
  • 从多维数组中的特定列获取数组值[重复]

    这个问题在这里已经有答案了 该数组看起来像 arr array array a b array c d array e f 我想获取一个包含第一列中的值的数组 例如array a c e 我知道可以通过迭代数组并将值存储在另一个数组中来轻松
  • iOS 7 上 UITextview 撤消时出现奇怪的崩溃

    我收到了一堆崩溃报告 它们看起来很像下面的内容 但范围值不同 有时范围不是 0 x 而是 2 x 应用具体信息 由于未捕获的异常 NSRangeException 而终止应用程序 原因 NSBigMutableString substrin
  • Visual Studio 智能感知无法在一个 .ascx 文件中工作

    我在 ASP NET MVC 项目的同一文件夹中有两个 ascx 文件 其中之一智能感知工作正常 在另一种情况下 它根本不起作用 有任何想法吗 这些文件非常相似 顶部有相同的 control 定义 使用VS2008和C 尝试重建您的项目 智
  • 使用 FTPClient Java 检索文件内容

    我使用commons FTPCLIENT 我只想从 ftp 服务器获取文件内容 我不想将其写入临时文件 有什么办法可以做到这一点吗 fileoutputstream 应始终指向本地文件 提前致谢 Use FTPClient retrieve
  • 如何使用 git filter-repo 修改远程历史记录?

    过去我用过git filter branch从我的 git 历史记录中删除文件 接下来 我可以强制推送来更新远程存储库 例如 从本地存储库中删除所有 HTML 文件 然后重写远程文件以反映更改 git filter branch force
  • PowerShell 和全局函数

    为什么下面的代码不起作用 根据这篇文章 全局的用法应该是正确的 http technet microsoft com en us library ff730957 aspx http technet microsoft com en us