Articles of PowerShell的

Windows批处理脚本中的文件/文件夹select器对话框

通常,要求用户向批处理脚本提供文件名是一件杂乱的事情,不需要拼写错误,空格的path引号等等。 不幸的是,用户的准确性不是很出名。 在input文件位置直到运行时才知道的情况下,使用GUI进行文件selectinput可降低用户错误的可能性。 有没有办法调用File… Open从Windows批处理脚本File… Open样式gui文件select器或文件夹select器? 如果脚本用户安装了PowerShell或.NET,则可以。 请参阅下面的答案。 我也有兴趣看看其他人可以提供什么解决scheme。

Windows PowerShell ISE不会提示input

我使用控制台作为我的工具来pipe理汞储存库。 经典的cmd或Console2我input: hg in 和控制台提示类似于: D:\workspace\someproject>hg in http authorization required realm: Bitbucket.org HTTP user: xorty password: 显然,我input密码。 但是,当我在PowerShell控制台中input“hg in”时,它不会提示任何内容。 它只是一直说这个: Running script / selection. Press Ctrl + Break to stop Running script / selection. Press Ctrl + Break to stop 我可以使PowerShell ISE像传统控制台一样工作吗?或者PowerShell不是这样工作的吗?

PowerShell 2.0 sudo的限制

很长时间的读者,但新的海报。 我一直在为这个问题摔跤了一整天,这让我疯狂。 淘了这个网站和谷歌后,我仍然卡住了。 基本上,我无法弄清楚如何在PowerShell中使用Copy-Item CmdLet来实现“sudo”。 这是我的代码: PROFILE.PS1: # Trigger UAC to elevate the supplied command function Elevate-Process() { if($args.Length -eq 0) { error ('USAGE: ' + $MyInvocation.InvocationName + ' <executable> [arg1 arg2 arg3 …]'); } else { try { if($args.Length -eq 1) { Start-Process $args[0] -Verb RunAs; } else { Start-Process $args[0] -ArgumentList $args[1..$args.Length] -Verb […]

如何使用第四种交换操作来操作PowerShell的位置堆栈?

在PowerShell中,您可以使用pushd ( Push-Location的别名)和popd ( Pop-Location的别名)将项目推送到位置堆栈并将其popup项目。 这与bash的pushd和popdfunction非常类似,用于一堆目录。 但是bash的另外一个很好的特性是你可以使用pushd来交换堆栈中最上面两个位置。 所以你可以很快地在一个地方和另一个地方来回翻转。 而且它也需要pushd +3这样的参数,所以你可以在堆栈中的某个位置进行交换。 有没有办法用PowerShell做到这一点? 举个例子,在bash中: $ pwd /bin $ pushd ~ ~ /bin $ pwd /home/hopper $ pushd /bin ~ $ pwd /bin $ pushd ~ /bin $ pwd /home/hopper

如何在远程机器上启动.cmd文件?

我需要能够从该文件驻留在该计算机上的目录内启动位于远程计算机上的.cmd文件。 我已经尝试过: invoke-command -ComputerName test123 -ScriptBlock { cmd /cc:/myfile.cmd }在invoke-command -ComputerName test123 -ScriptBlock { cmd /cc:/myfile.cmd }中,启动.cmd,但然后失败,因为它找不到相应的.cmds,这一个启动这些都位于同一个目录中)。 有没有办法启动这个.cmd文件,并保持执行? 即,即使PowerShell窗口closures后,.cmd将继续在远程机器上运行。

如何复制整个目录结构?

我从一个目录复制10,000个文件到另一个目录。 两个目录结构都有相同的文件; 但是,尺寸可能会有所不同。 如何强制覆盖大小不同的文件,不要复制大小相同的文件? 到目前为止,我有这样的: $source = 'D:\Test1' $destination = 'D:\test2' $exclude = @('*.db','test2.log') $sourcelist = Get-ChildItem $source -exclude $exclude foreach ($file in $sourcelist){ $result = test-path -path "$destination\*" -include $file if ($result -like "False"){ #uncomment the next line to see the value being passed to the $file parameter #Write-Host $file Copy-Item "$file" -Destination "$destination" […]

Powershell – 比较两个.CSV文件并输出重复的名称

我是Powershell的新手,标题非常多,指出了我正在做的事情。 我在这里有两个.CSV文件,其中包括一个组的用户名和另一个OU。 我需要比较组的用户列表和OU,然后从AD中的组中删除重复项。 我一直在search,并find了一些线索,但是我作为一个新的Powersheller,我没有能够把我发现的一个工作命令合并到我所希望的。 这里是我想要比较的.CSV文件的格式。 不应该比较Samaccountname。 http://pastebin.com/bPNf8ExZ 提前谢谢了。

无法在Microsoft Powershell中使用`mvn -D`参数运行Maven,但在命令提示符下工作

我试图从命令行构build我们的Web项目,但是跳过了testing。 我正在使用命令mvn clean install -Dmaven.test.skip=true 。 当我从传统的黑白命令提示符(又名DOS shell)运行命令的命令工作,但是当我从“Windows PowerShell”的命令运行它,我得到以下错误: [ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin- artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepar e-package, package, pre-integration-test, integration-test, […]

IE通过registry启用/禁用代理设置

在IE运行时,我需要启用/禁用IE代理设置。 我有一个PowerShell脚本行来启用代理: Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ProxyEnable -value 1 或者这个禁用: Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ProxyEnable -value 0 上面的脚本工作,registry项被更新。 但是,IE浏览器不会拿起价值,直到我closures所有打开的IE窗口,并打开一个新的。 我需要打开/运行IE窗口来获取新的设置。 有什么方法可以达到我想要的吗?

当使用get-content回显屏幕时,如何启用powershell来解释ansi颜色代码?

我有一个日志文件,其中包含各种文本的ansi颜色代码。 我使用powershell语言命令将其回显到控制台: get-content logfile.log -wait 所以我可以看到最新的日志更改。 但是,所有的ansi颜色代码都显示为文本字符,如: Esc[90mEsc[39m 你如何让他们在PowerShell窗口中的颜色代码解释? 不熟悉PowerShell语言,是否有PowerShell命令或编码选项来处理? 我已经阅读了各种powershell文档,但没有发现任何东西在他们的这些ansi代码。