2013-02-28 87 views
2

在PowerShell中是否可以设置一个脚本以便在某人到某个目录时自动运行脚本?是否有可能在用户目录下运行脚本到目录

我明白为什么这是一个可怕的,可怕的,不好的想法的所有原因,但有没有一种机制来支持它,不涉及一些深度的文件系统黑客攻击?

+0

我想我在使用rvm时在bash中看到过类似的东西,但我不确定。 – 2013-02-28 16:48:10

+0

我想不出任何不涉及替换/覆盖'set-location'的问题 - 所有这些都很容易被绕过。接下来的想法是一个'FileSystemWatcher',但它只是对文件系统进行修改。 – alroc 2013-02-28 17:04:31

+0

为cmd.exe(32和64位)编写一个系统级挂钩并监听'keypress'。像'while(!Console.KeyAvailable){... //做一些事情,比如在键入cd命令时运行Powershell脚本}'可以在C#中完成。 – 2013-02-28 17:10:16

回答

2

cd只是Set-Location的别名。您可以删除cd别名(您将需要使用-Force IIRC),然后创建一个CD功能。这是PSCX所做的。但是,如果要处理直接使用Set-Location的情况,则需要为Set-Location创建proxy function,以便注入自定义代码。

+0

中没有一个,我也不会感到惊讶。因此,不是没有覆盖函数,对吧?伟大的代理功能链接btw – 2013-03-01 01:20:42

+0

是的,你将不得不删除内置的光盘“别名”,但你会创建一个* new * CD功能。 – 2013-03-01 17:41:19

相关问题