繁体   English   中英

如何从上下文菜单对文件运行 PowerShell 脚本?

[英]How do I run a PowerShell script on a file from the context menu?

我写了一个PS脚本,它在文件开头替换了一个特定的字符串,在文件末尾添加了另一段字符串,最后它输出了一个XML。

我的代码可能很难看(我不是程序员/工程师或其他任何人,只是想让一些经营小型企业的家庭成员的生活更轻松),但它确实有效:

$content = Get-Content -Path 'C:\Users\blabla\Desktop\4440341930.txt'
$newContent = $content -replace 'text to be replaced','this is going to replace stuff'
$newContent | Set-Content -Path 'C:\Users\blabla\Desktop\4440341930.txt'
Add-Content C:\Users\blabla\Desktop\4440341930.txt '</Items>'
$x = [xml](Get-Content "C:\Users\blabla\Desktop\4440341930.txt")
$x.Save("C:\Users\blabla\Desktop\4440341930.xml")

我希望他们能够通过右键单击 txt 文件从上下文菜单中运行此脚本。 我做了一些研究,我得到了我必须添加到注册表的内容,但是,我不确定如何使它工作。 由于他们要右键单击的每个文件的路径会有所不同,因此我在 $content 中指定的路径将不起作用。

我必须在我的代码中修改什么才能将其添加到注册表中?

为此,您需要:

  1. 在 SendTo 文件夹中创建快捷方式:“$DestinationPath\AppData\Roaming\Microsoft\Windows\SendTo”
  2. 目标:“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”
  3. Arguments:-File "d:\path\your PS1 file"
  4. 在您的程序中,将 Explorer 传递的文件名读取为:
Param
(
   [Parameter(Mandatory=$false)]
     [String] $FilePath
)

我编写了一个安装程序 Function,它完成了步骤 1-3,我将这些步骤包含在上下文菜单中我想要的所有程序中,然后使用 -Setup 开关运行程序。 我们不应该在这里发布开发的代码,但是如果您无法弄清楚,请告诉我,我会发布它并希望我不会因此而被杀。 哈哈!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM