我可以在Windows 7中将PowerShell设置为“默认”吗?


9

我希望默认情况下在运行批处理文件或“在此处打开命令窗口”等情况下启动PowerShell而不是Command。

有什么建议么?


5
我不认为powershell可以解释批处理文件,因此您可能不应该打开这些文件。
nhinkle

Answers:


9

我只是做了一个非常快速的测试,下面的注册表项将在资源管理器中所有文件夹的上下文菜单中添加一个“ 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中打开的唯一原因是为了与窗口工具保持一致和合作。没错,没有内在的实际原因。;)
Ipsquiggle 2011年

0

在PowerShell中运行CMD批处理文件不会走得太远。

您可以尝试将%COMSPEC%变量更改为指向powershell.exeusing setx,但是我认为花很长时间才意识到这是一个非常糟糕的主意,然后再次将其更改。

将文件另存为* .ps1而不是* .bat,它将使用powershell


1
为什么这是个坏主意?只是好奇。
afrazier 2011年

@afrazier:我没有尝试过更改%COMSPEC%为不兼容CMD的外壳,但是我认为将其更改为PowerShell将导致.cmd/ .bat文件试图在PowerShell中执行,因此它们将失败。我已经安装了许多需要使用批处理文件的软件,因此这样做不是一个好主意。而且,我有点偏执,因为我一直在使用CMD(实际上是TCC,它是扩展的超集)来进行日常文件管理-尽管我有很多东西要学习,但我只将PowerShell用于系统方面。相比之下,它是如此强大。
paradroid 2011年

1
仅出于傻笑,我已更改%ComSpec%为指向Win7系统上的PowerShell。.cmd我测试的前几个文件工作正常。它们涉及cmd特定的构造(for,变量操作,if),因此PS显然足够聪明,可以知道何时需要调用cmd.exe
afrazier 2011年

例如,更改%ComSpec%为powershell会破坏常规版本控制命令。
希望
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.