Articles of PowerShell的

将Word文档/ docx文件转换为PDF时,文件系统监视器停止工作

我有一个Powershell脚本,用于自动将.doc / .docx文件转换为* .pdf。 该脚本运行良好的第一个文件。 但是如果我把另一个文件放在监视文件夹中,监视器不会触发一个事件。 这是完整的脚本。 如果我注释掉所有$ docvariables,脚本就会多次运行而不会有任何问题。 我忽略了/忽略了什么? $watcher = New-Object System.IO.FileSystemWatcher $watcher.Path = "$Env:DropboxRoot" $watcher.Filter = "*.doc*" $watcher.IncludeSubdirectories = $true $watcher.EnableRaisingEvents = $true Add-type -AssemblyName Microsoft.Office.Interop.Word $action = { $name = (get-item $Event.SourceEventArgs.FullPath).BaseName ### DON'T PROCESS WORD BACKUP FILES (START WITH A TILDE ~) if(!($name.startsWith("~"))){ write-host Triggered event from $Event.SourceEventArgs.FullPath $inputFilePath = […]

执行远程Powershell会话中的交互式命令不起作用

我有麻烦在需要用户交互的远程PowerShell会话中执行命令。 例如:我input一个远程会话 Enter-PSSession -ComputerName mobius 在这个会话中,我执行一个要求input密码的命令: [mobius]: PS C:\Windows\system32> & 'c:\Program Files (x86)\Putty\plink.exe' merlin -l joe joe@merlin's password: c:\Program Files (x86)\Putty\plink.exe : Using username "plakat". + CategoryInfo : NotSpecified: (Using username "plakat".:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 最后两行显示为红色。 似乎有两个问题。 问题1: plink.exe将文本“使用用户名”plakat“'写入stderr。 这可能会导致错误消息。 我可以压制这个吗? (pipe道标准输出或其他东西。) 问题2:进程退出时,我应该input密码。 我也可以用其他命令来重现 [mobius]: PS C:\Windows\system32> cmd /c date 它不让我inputdate。 如果我在本地PowerShell中运行它们,这两个命令都可以工作。 […]

在每个目录上执行相同的脚本

我有这个奇妙的脚本: gci -Recurse| where {$_.LastWriteTime -gt (Get-Date).AddDays(-45)}| group Extension -NoElement 输出是: 4352 .JPG 2352 .doc 2135 .pdf 1811 .xls 1472 857 .pub 732 .xlsx 565 .docx 66 .rtf 64 .lnk 63 .ppt 61 .url 41 .png 38 .xml 28 .htm 27 .msg 我想要的是同一个脚本在当前目录的每个目录上运行(非recursion)。 例如,如果我在目录c:\test ,并且该目录作为文件夹alex , liza和harry ,那么我希望将这个脚本应用于c:\test\alex , c:\test\liza , c:\test\harry 我想要的输出是: 4352 .JPG […]

Findstr总是无法在文本文件中find哈希string

我想要replace某个.jar文件,如果该文件的MD5哈希值更改。 我已经编写了一个小的PowerShell脚本来完成文件的散列操作,并且.ps1脚本通过batch file运行。 PowerShell打印哈希到1.txt我希望批处理脚本检查文本文件的正确散列,如果哈希是不同的,它会覆盖旧版本的文件。 文件的replace还没有实现,但一旦findstr问题解决了。 @echo off setlocal EnableDelayedExpansion :a powershell.exe -ExecutionPolicy ByPass -file powershellmd5.ps1 findstr /c:"ff b1 b9 2d b1 03 db 59 3f 9e ca 51 f0 14 67 62 ca a8 d7 7d" "1.txt" echo !errorlevel! timeout /t 10 /NOBREAK goto a 哈希完成时,以下是1.txt的内容: 文件license.jar的SHA1哈希值: ff b1 b9 2d b1 03 db 59 […]

通过Powershell或Batch将文件从Windows转换到UNIX

我有一个批处理脚本,提示用户input一些input,然后输出我在AIX环境中使用的几个文件。 这些文件需要在UNIX格式(我相信是UTF8),但我正在寻找一个方向,以最简单的方式做到这一点。 我不喜欢下载额外的软件包; Cygwin或GnuWin32。 我不介意编码,如果可能的话,我的编码选项是批处理,Powershell和VBS。 有谁知道一个办法做到这一点? 或者,我可以使用批处理创build文件并调用Powershell脚本来重新创build这些文件? 这里的想法是一个用户会被提示input一些信息,然后输出一个标准文件,这些文件在AIX中基本上是一个工作的快速答案。 我最初使用批处理,因为我不知道我会遇到这个问题,但我有点倾向于在Powershell中重做这个。 因为我在另一个可以进行转换的论坛上find了一些代码(下面)。 % foreach($i in ls -name DIR/*.txt) { \ get-content DIR/$i | \ out-file -encoding utf8 -filepath DIR2/$i \ } 寻找一些方向或在这方面的一些input。

使用当前Powershell凭据进行远程调用

我有一个Powershell脚本,用于远程调用其他服务器上的其他Powershell脚本。 该脚本用于closures并启动不同服务器上的服务。 Powershell脚本的设置方式是,我所要做的就是通过调用serverStartStop [START|STOP]调用它,并自动并有条不紊地将其serverStartStop [START|STOP]到服务器列表,并closures每个服务器上的服务列表。 我最近升级了系统,需要启动一些服务后运行批处理脚本。 我可以远程调用批处理脚本,但批处理脚本会调用另一个尝试访问networking上共享的命令。 该命令失败,因为用于调用该命令的用户没有足够的权限访问该共享。 我已经尝试了几件事情来解决这种情况,并对Powershell中的Invoke-Command行和Windows Batch的runas命令进行了一些研究。 runas命令要求input用户密码,这是不可接受的,因为这是一个自动脚本。 有没有人有任何想法,我可以做这个工作干净,没有用户的互动,而不是做初步的START或STOP呼叫?

Bash'printf'相当于命令提示符?

我正在寻求在Windows的命令提示符pipe一些stringinput到一个小型的C程序。 在bash中我可以使用 $ printf "AAAAA\x86\x08\x04\xed" | ./program 本质上,我需要在命令提示符下转义那些hex数字。 在命令提示符/ PowerShell中是否有相当于或类似的printf命令? 谢谢

robocopy MAXAGE / MINAGE值,小时和分钟

我正在尝试将文件从服务器复制到另一台服务器,每小时创build一个文件。 我正在使用Robocopy来复制文件,而且非常有用。 但现在我真的坚持这一点。 我需要用分钟的MINAGE值复制文件,就像那样。 如果在下午2点之后运行robocopy,我应该只能复制2PM之前创build的文件 Robocopy MAXAGE和MINAGE只接受date而不是时间。 任何build议

标签和图片框位置碰撞

根据第一个问题,我遇到了另一个问题: 标签隐藏在PowerShell中使用Windows窗体中的PictureBox我创build下一个问题,解决它。 问题是我使用了两个不同的控件( PictureBox和Label ),我无法将PictureBox放在窗体的右上angular,而没有以表单为中心的标签的问题。 图像声明 $Image = [system.drawing.image]::FromFile("C:\xxx.png") $pictureBox = new-object Windows.Forms.PictureBox $pictureBox.Dock = [System.Windows.Forms.DockStyle]::Right $pictureBox.BackColor = "Transparent" $pictureBox.AutoSize = $True $pictureBox.Image=$Image $Form.Controls.Add($pictureBox) $pictureBox.SendToBack() 标签声明 $redLabel1 = New-Object System.Windows.Forms.Label $redLabel1.Location = New-Object System.Drawing.Size($Form.Width, $Form.Height) $redLabel1.AutoSize = $False $redLabel1.TextAlign = "MiddleCenter" $redLabel1.Dock = "Fill" $redLabel1.Text = "Something" $redLabel1.ForeColor = "Red" $redLabel1.BackColor = "Transparent" $Font = […]

通过Powershell更改Chrome设置

我想创build一个脚本来改变默认的页面缩放在Chrome中,但是我不知道这些选项存储在哪里。 我想我必须find一个合适的选项文本文件,parsing它,然后在那里使用PowerShell进行文本replace,以便应用更改。 每当我将笔记本电脑插到外接显示器上时,我都需要这样做,而且手工操作也是有点令人捧腹的 有任何想法吗?