Answers:
我的%UserProfile%\Apps
文件夹中包含许多小型独立实用程序,例如存档器等。然后有许多我编写并经常使用的批处理文件,它们位于中%UserProfile%\Batches
。其余的,我只是将它们添加到中PATH
,这可以由安装程序完成,也可以通过
setx PATH "%PATH%;%CD%"
从适当的目录。如果内容太长(环境变量有长度限制),那么那里的路径数量可能只会成为问题。
您可以(有时我也可以)为此类程序编写小型包装批处理文件。在Windows上,简单地将可执行文件复制/硬链接/符号链接到另一个目录可能不会起作用,但是您可以轻松地创建一个批处理文件,例如针对程序Foo:
@"%ProgramFiles%\Foosoft Foo\foo.exe" %*
然后您可以将用于存储这些批处理文件的文件夹添加到PATH
。
现在大多数Windows计算机都随PowerShell一起提供,我在用户配置文件中使用了许多sal / Set-Alias命令,因此,如果一个应用程序只有一个或两个我使用的应用程序,我将仅为这两个命令创建别名,而不是添加整个应用文件夹到路径。示例包括SQL Management Studio,Notepad ++,TFS Power Tools(命令行工具tfpt.exe)。我还跨计算机复制了我的用户配置文件,因此这使我可以在创建别名之前检查当前计算机上该应用程序是否存在(有时会警告您是否未安装应用程序)。
filter ctQuoteString { "`"$_`"" }
filter ctResolvePath { Resolve-Path $_ | select -ExpandProperty Path | ctQuoteString } # used in Edit.ps1
$nppExe = "C:\Program Files (x86)\Notepad++\notepad++.exe"
if ((Test-Path variable:\nppExe) -and (Test-Path $nppExe)) {
function EditNotepadPP {
param ([parameter(ValueFromPipelineByPropertyName=$true)][Alias("FullName","FileName")]$Path)
begin { if (! $nppExe) { throw 'variable $nppExe is not defined' } }
process {
$Path | ctResolvePath | % { # ctResolvePath will get full path and surround with quotes
& $nppExe $_
}
#AddEditHistory $Path #if you need detailed time tracking, might help to create a log what files you're editting
}
}
Set-Alias npp EditNotepadPP
}
# I have similar functions for other apps.
Set-Alias vs EditVS
Set-Alias tfe EditTFCheckout