Answers:
我只是做了一个非常快速的测试,下面的注册表项将在资源管理器中所有文件夹的上下文菜单中添加一个“ PowerShell here”项:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere]
@="&PowerShell here"
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="cmd.exe /c start \"PS\" powershell.exe -NoExit -Command \"cd \\\"%1\\\"\""
只需将其导入注册表即可。我使用cmd.exe
自举功能来避免必须对路径进行硬编码。
关于cmd脚本/批处理文件。我认为默认情况下在PowerShell中运行CMD脚本没有太大意义。但是也可以通过修改HKCR\cmdfile\shell\open
注册表项来实现
在PowerShell中运行CMD批处理文件不会走得太远。
您可以尝试将%COMSPEC%
变量更改为指向powershell.exe
using setx
,但是我认为花很长时间才意识到这是一个非常糟糕的主意,然后再次将其更改。
将文件另存为* .ps1而不是* .bat,它将使用powershell
%COMSPEC%
为不兼容CMD的外壳,但是我认为将其更改为PowerShell将导致.cmd
/ .bat
文件试图在PowerShell中执行,因此它们将失败。我已经安装了许多需要使用批处理文件的软件,因此这样做不是一个好主意。而且,我有点偏执,因为我一直在使用CMD(实际上是TCC,它是扩展的超集)来进行日常文件管理-尽管我有很多东西要学习,但我只将PowerShell用于系统方面。相比之下,它是如此强大。
%ComSpec%
为指向Win7系统上的PowerShell。.cmd
我测试的前几个文件工作正常。它们涉及cmd
特定的构造(for
,变量操作,if
),因此PS显然足够聪明,可以知道何时需要调用cmd.exe
。
%ComSpec%
为powershell会破坏常规版本控制命令。