Powershell cd($pwd更改)后如何运行命令?
我想运行一个命令,在当前目录中查找文件Powershell cd($pwd更改)后如何运行命令?,powershell,Powershell,我想运行一个命令,在当前目录中查找文件.mything rc。我想在制作cd时检查该文件是否存在 我的意思是,我的命令不会调用Set Location,如果用户调用Set Location,我希望自动执行一些操作。。。类似于nvm在bash中所做的事情,当您将cd放在带有.nvmrc的文件夹中时,它会自动运行命令nvm use… 如何检测$pwd已更改并运行我的命令?您可以将自定义脚本块附加到现有的提示符函数中,以检查目录更改,然后执行任何您想要的操作: $currentPrompt = (Ge
.mything rc
。我想在制作cd
时检查该文件是否存在
我的意思是,我的命令不会调用
Set Location
,如果用户调用Set Location
,我希望自动执行一些操作。。。类似于nvm
在bash中所做的事情,当您将cd
放在带有.nvmrc
的文件夹中时,它会自动运行命令nvm use…
如何检测
$pwd
已更改并运行我的命令?您可以将自定义脚本块
附加到现有的提示符
函数中,以检查目录更改,然后执行任何您想要的操作:
$currentPrompt = (Get-Command prompt).ScriptBlock
$newLogic = { $global:old = $global:new; $global:new = Get-Location; if($null -ne $global:old -and $global:new.Path -ne $global:old.Path){ Write-Host "Location changed from '$global:old' to '$global:new'." } }
$newPrompt = [scriptblock]::Create("$currentPrompt; $newLogic")
function prompt { & $newPrompt }
请注意,这取决于全局变量,因此您当然应该选择一个比
旧的
和新的
更好的变量名。您可以将自定义的脚本块
附加到现有的提示符
函数中,以检查目录更改,然后执行任何您想要的操作:
$currentPrompt = (Get-Command prompt).ScriptBlock
$newLogic = { $global:old = $global:new; $global:new = Get-Location; if($null -ne $global:old -and $global:new.Path -ne $global:old.Path){ Write-Host "Location changed from '$global:old' to '$global:new'." } }
$newPrompt = [scriptblock]::Create("$currentPrompt; $newLogic")
function prompt { & $newPrompt }
注意,这依赖于全局变量,因此您当然应该选择比
old
和new
更好的变量名;设置位置。。。;如果($oldcwd-ne$pwd.Path){…}?我的意思是,我的命令不会调用设置位置
,如果用户调用设置位置
,我希望自动执行一些操作。。。类似于nvm
在bash中所做的事情,当您使用.nvmrc
文件夹中的cd
时,它会自动运行一个命令nvm use…
听起来您想为Set Location
cmdlet编写一个包装器或代理函数。看一看。如果您是交互式用户,您可以将自己的提示功能添加到检测更改的配置文件中。$oldcwd=$pwd.Path;设置位置。。。;如果($oldcwd-ne$pwd.Path){…}
?我的意思是,我的命令不会调用设置位置
,如果用户调用设置位置
,我希望自动执行一些操作。。。类似于nvm
在bash中所做的事情,当您使用.nvmrc
文件夹中的cd
时,它会自动运行一个命令nvm use…
听起来您想为Set Location
cmdlet编写一个包装器或代理函数。看一看。如果你在寻找交互式用户,你可以在一个配置文件中添加你自己的提示功能来检测变化。