PowerShell创建自定义命令

PowerShell创建自定义命令


*2022/10/22

功能


生成如下文件结构,添加文件夹至VSCode工作区,并打开生成的markdown文件

$Disk:.
└─$name─$name.md
    └─imgpasted

提供如下可选参数

-name     : markdown文件/文件夹名
-savepath : 保存路径(相对路径)

脚本


新建.ps1文件,输入如下内容

# 指定命令行参数,并提供默认值
#
# name     : 默认为时间戳
# savepath : 默认为统一存放markdown的文件夹

param(
	[Parameter()]
	[String]$name = "$(Get-Date -Format 'yyyy-mm-dd-hh-mm-ss')",	
	[String]$savepath = "$([Environment]::GetFolderPath("Desktop"))\mdfiles\"
)

$exist = $False

# 获取$savepath下所有内容的名称并沿管道传送
# 遍历检查是否重名,打印错误信息并将$exist设为真
# 注意大括号不能分行写

Get-ChildItem -Path $savepath -Name | Foreach-Object -Process {
	if ([String]$_ -eq $name)
	{
		Write-Host "[$(Get-Date)]makemd: Error: $savepath$name already existed.`n" -ForegroundColor red
		$exist = $True
	}
}

# 未发现重命名则创建文件、文件夹
# code -a <dir> : 将文件夹添加至VSCode工作区
# code <file>   : 打开文件至编辑区
# 打印提示信息

if ($exist -eq $False)
{
	mkdir "$savepath$name", "$savepath$name\imgpasted"
	new-item "$savepath$name\$name.md" -type file
	code -a "$savepath$name"
	code "$savepath$name\$name.md"
	Write-Host "[$(Get-Date)]makemd: $savepath$name created successfully.`n" -ForegroundColor green
}

保存后打开终端,可以脚本方式运行。

创建PowerShell命令

假定命令名为:Makemd,为保持PowerShell命令风格,首字母大写。


查看PowerShell命令的搜索路径

echo "$env:PSModulePath"

将脚本放在位于Program Files的路径下,我这里为C:\Program Files\WindowsPowerShell\Modules。首先对.ps1文件做如下修改

function Makemd
{
	# 这里放脚本内容
}

在上一步的路径(Modules)下新建文件夹Makemd,在其内放置修改后的脚本,并重命名为Makemd.psm1。

  • 文件夹/文件对应关系:包含新模块的文件夹内至少含一个同名文件,如这里的Makemd/Makemd.psm1
  • 文件/函数对应关系:函数可与文件不同名,一个.psm1文件可包含多个函数

为脚本代码套壳有什么意义呢?不妨不修改为函数,直接粘贴.ps1内容至.psm1,查询模块

# Get-Command会执行Import-Module Makemd,查询+导入
Get-Command -Module Makemd # 文件夹

将打印成功提示信息,可知脚本按默认参数执行了一次。然而键入Makemd(函数名),发现命令无法找到

Makemd: 无法将“Makemd”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

因此需要修改为函数,执行Remove-Module Makemd,然后重新导入模块,打印如下信息

CommandType Name         Version Source
----------- ----         ------- ------
Function    Get-OldFiles 0.0     Makemd

可以看到函数成功导入,这时就可以在终端里使用命令了。

  • 在某个PowerShell窗口找不到命令时,关闭并新建一个试试
  • 每次更新.psm1文件后需移除模块并重新导入

正常情况下,使用该命令的时候是无需导入该模块的,相比脚本也不需要写路径,十分方便。


附:PowerShell常用


System.ConsoleColor

Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta, DarkYellow, Gray, DarkGray, Blue, Green, Cyan, Red, Magenta, Yellow, White

编辑配置文件

notepad $PROFILE



参考博客


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 PowerShell创建快捷方式,您需要使用 New-Object cmdlet 和 WScript.Shell COM 对象。 示例代码如下: ``` $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("C:\Path\To\Shortcut.lnk") $Shortcut.TargetPath = "C:\Path\To\Target.exe" $Shortcut.Save() ``` 在这里,$Shortcut 变量保存着新创建的快捷方式的对象。然后,您可以使用 TargetPath 属性指定快捷方式指向的目标文件的路径。最后,使用 Save() 方法将快捷方式保存到指定的路径。 您还可以使用其他属性来设置快捷方式的其他属性,例如 Description、WorkingDirectory 等。有关详细信息,请参阅 MSDN 文档:https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/8k1kstfh(v=vs.84) 希望这能帮助您。 ### 回答2: 在PowerShell创建快捷方式的方法是通过使用`New-Object`命令和`WScript.Shell`对象来完成。下面是详细的步骤: 1. 打开PowerShell控制台。 2. 使用以下命令创建一个`WScript.Shell`对象: ```powershell $shell = New-Object -ComObject WScript.Shell ``` 这会实例化一个`WScript.Shell`对象,并将其赋给`$shell`变量。 3. 使用`$shell.CreateShortcut`方法来创建快捷方式。指定快捷方式的目标、快捷方式的名称和快捷方式的保存位置。例如: ```powershell $shortcut = $shell.CreateShortcut("C:\Users\用户名\Desktop\新快捷方式.lnk") ``` 这将在桌面上创建一个名为"新快捷方式"的快捷方式。 4. 设置快捷方式的目标路径和其他属性。例如,如果要指定计算器应用程序作为快捷方式的目标,则可以使用以下命令: ```powershell $shortcut.TargetPath = "C:\Windows\System32\calc.exe" ``` 5. 使用`$shortcut.Save()`方法保存创建的快捷方式。 ```powershell $shortcut.Save() ``` 6. 最后,关闭PowerShell控制台。 通过按照上述步骤在PowerShell创建快捷方式,您可以为特定应用程序或文件创建自定义的桌面或文件夹快捷方式。 ### 回答3: 要使用Powershell创建快捷方式,可以按照以下步骤进行: 1. 打开Powershell控制台:在开始菜单中搜索“powershell”,然后选择“Windows Powershell”。 2. 输入以下命令创建快捷方式: ``` $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("C:\路径\快捷方式.lnk") $Shortcut.TargetPath = "目标文件的路径" $Shortcut.IconLocation = "图标文件的路径" $Shortcut.WorkingDirectory = "快捷方式的工作目录" $Shortcut.Save() ``` 确保替换“C:\路径\快捷方式.lnk”为您想要创建快捷方式的路径,将“目标文件的路径”替换为快捷方式指向的文件路径,将“图标文件的路径”替换为快捷方式的图标路径,而“快捷方式的工作目录”是可选的,可以设置为期望的目录。 3. 运行命令后,将在指定路径中创建带有给定名称的快捷方式。您可以在资源管理器中导航到该路径以查看此快捷方式。 使用Powershell可以轻松地创建快捷方式,并且可以通过更改上述命令中的属性来自定义快捷方式的目标、图标和工作目录等属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值