Articles of PowerShell的

Powershell:空文件总是生成(Compare-Object的输出)

这个问题最stream行的答案涉及以下Windows PowerShell代码(编辑修复一个错误): $file1 = Get-Content C:\temp\file1.txt $file2 = Get-Content C:\temp\file2.txt $Diff = Compare-Object $File1 $File2 $LeftSide = ($Diff | Where-Object {$_.SideIndicator -eq '<='}).InputObject $LeftSide | Set-Content C:\temp\file3.txt 我总是得到一个零字节文件作为输出,即使我删除$ Diff线。 为什么输出文件始终为空,如何解决?

如何pipe理批处理脚本输出到PowerShell脚本?

我需要使用HTTP Apachepipe道日志logging将响应代码“400”的所有条目放到单独的文件中。 为此,我想使用PowerShell Select-String因为它是Linux中最接近grep命令: 我有以下批处理从cmd环境中调用PowerShell脚本: powershell -command "& { sls ,400, 'cmd -ca | select -exp line >> access_400.log }" 据我所知,httpd中的“CustomLog”类似于这个: CustomLog "| 'call_powershell_script_that_will_extract_400_entries.ps1' " common 如何将CustomLog的pipe道输出input到将使用“400”响应代码提取条目的PowerShell脚本?

如果在使用正则expression式的开始词之前出现closures词,则在两个词之间find不匹配的词

所以,在通过日志时,我遇到了一个正则expression式困境。 我目前的正则expression式是这样设置的: (?si)\bStart\b(.*?)\bError\b(.*?)\bEnd\b 当我遇到像这样的场景时,这很好用: stuff happens Start stuff happens Error stuff happens End 但是也是这样的,如果错误在开始和结束序列之外, Start End Error Start End 有没有办法让正则expression式只抓取#1是像#2场景的存在? 有时在日志中生成的错误不会发生在Start和End关键字内。 基本上,我需要隔离没有唯一错误代码或名称的特定types的错误,只是在发生错误时将“错误”一词引发到日志中。 就使用的语言而言,并不重要。 AutoIt或Powershell的例子会很酷,但这更像是一个正则expression式的语法问题。 但是,这是在Windows环境中使用(特别是8.1)

我如何使用Powershell作为我的tramp-encoding-shell?

首先我启动了eshell然后我input命令cd /plink:<user>@<host>:/home/ 那么我得到这个错误消息 Microsoft Windows [版本6.1.7601]版权所有(c)2009 Microsoft Corporation。 版权所有。 命令提示符已被pipe理员禁用。 按任意键继续 。 。 。 我试图连接plink(这是我的path),也通过*消息*缓冲区后,我发现这一点。 找不到本地shell提示符(C:\ Windows \ system32 \ cmd.exe) 我90%确定这是因为cmd已经在我的机器上被禁用了,因为当我在另一台计算机上尝试相同的设置时,我知道cmd已经启用,一切正常。 我已经修改我的.emacs文件 (require 'tramp) (set 'tramp-encoding-shell "C:/Windows/System32/WindowsPowershell/v1.0/powershell.exe") (set 'tramp-encoding-command-switch "-Command") 我得到了不同的结果,但结果似乎是乱七八糟的废话(第三行看起来可能是一个提示, \和>字符在正确的地方…)。 我设法findtramp-encoding-shell的相当好的描述 ,还有一个相关的SO问题 ,这里是github上的tramp-encoding-shell 源文件 。 更新 这里是我的屏幕看起来像试图不成功打开一个PowerShell设置为tramp-encoding-shell的plink连接。

如何摆脱Batch / Powershell中的安全警告

我试图通过batch file执行PowerShell脚本,并不断得到以下警告; – >执行策略设置为远程签名; 我也testing与无限制,同样的错误显示; 如何摆脱这个?

用Lua执行powershell命令

晚上好, 我有一个与我一起工作的程序,它有一个板载的lua编译器,允许自定义的写操作。 由于工具本身是非常有限的,特别是如果它通过networking复杂的反应,我想要使用Powershell卢阿。 可悲的是没有什么可以find(至less我没有),像os.execute()或io.popen()使用标准的命令行从Windows。 有人知道图书馆或其他方式与lua使用Powershell。 我已经试过了:我尝试用Powershell编辑器编写命令行脚本,并使用os.execute运行此脚本,但是它将其作为文本文件打开,最好直接在lua中编写命令,但如果没有另外,直接执行PowerShell脚本也可以。 (在Windows中,您可以使用鼠标右键执行脚本“单击/执行Powershell”

用户和本地组使用Powershell报告?

有没有一种简单的方法使用PowerShell来显示所有在计算机上活动的本地Windows组以及属于这些组的用户? 这个问题的第二部分是如果可以扩展到一次查看多台机器的话。

IE自动化与Powershell

我试图使用Powershell和IE在Intranet上自动login到网站。 到目前为止,我有以下代码工作: $ie = new-object -com "InternetExplorer.Application" $ie.navigate("https://somepage/jsp/module/Login.jsp/") while($ie.ReadyState -ne 4) {start-sleep 1} $ie.visible = $true $doc = $ie.Document If ($doc.nameProp -eq "Certificate Error: Navigation Blocked") { $doc.getElementByID("overridelink").Click() } $loginid = $doc.getElementById("loginid") $loginid.value= "username" $password = $doc.getElementById("password") $password.value = 'somepass' $ie.navigate("javascript:doSubmit('login')",$null,$true) 所以,我现在所面临的问题是网站closures了用于login的原始窗口并打开一个新的IE窗口。 我如何着手将input提交到新窗口? 我知道我可以使用像tasklist.exe / v的东西来获得新的窗口的PID …但我不知道如何去控制它。 另外,查看我的代码后,请知道我不打算使用embedded式用户名和密码。 这只是为了让我不用每次我想testing脚本时不断地inputun / pw组合。

使用Powershell命令进行文件计数

如何使用Powershell命令Get-ChildItem来计算特定文件夹(和所有子文件夹)中的所有文件? 与(Get-ChildItem <Folder> -recurse).Count也文件夹计数,这不是我想要的。 还有其他的可能性,快速计数非常大的文件夹中的文件? 有人知道有关Windows Powerhell的简短教程吗?

在Windows 10命令行中启用git

我似乎无法从我的本地Windows命令行使git工作。 我已经尝试了PowerShell,我有我的环境variables中的git斌的path,但它仍然给我一个“ command not found ”,当我inputgit 。 我已经看过这里的解决scheme,而且没有一个适合我。 我没有C:/Program Files/git folder (or Program Files(x86)) 。 如果我打开git桌面应用程序,然后使用“打开启用git的terminal”选项,我可以使命令行git工作。 这一切都很好,除了打开桌面应用程序永远在我的笔记本电脑,我宁愿能够只是鞭出命令行拉我的代码。 如果有人有任何build议,我很乐意重新安装git,并遵循特定的指示,或者安装一个更可行的git版本。 谢谢。