为什么要使用“ Cmd / c Powershell”而不是仅使用“ Powershell”?

我已经按照问题中给出的说明使用注册表添加了我的第一个上下文菜单(是的)。

我最初使用它作为它执行的命令,即“ command”键的值:

Cmd /C Powershell  "imageSeqView --% \"%1\""

ImageSeqView是我的powershell函数的名称,我将其导入我的powershell配置文件中。它工作正常,但我想知道:为什么使用cmdopenPowershell来执行功能?这样做会不会更简单

Powershell  "imageSeqView --% \"%1\""

该命令似乎很好用,但是由于使用起来似乎很规范,cmd所以我想知道这是在暗中杀死幼犬或其他东西吗?

在此处输入图片说明

TOOGAM

没有充分的理由这样做。实际上,发生的唯一实际影响是放慢速度。

人们可能会认为这样做有充分的理由。使用CMD具有以下效果,通常在某些情况下会很好:

  • 启用内部命令,例如“ DIR
  • 设置环境变量,例如PATH变量

但是,在这种情况下,这些好处都不会获得。让我们看一下这两种情况:

因此,在某些情况下,有时可能会使用“ CMD /C”很有用。例如,如果我使用外部命令PSEXEC(从SysInternals下载),并尝试DIR在远程计算机上运行“ ”,则Windows将尝试运行“ DIR”命令。Windows将无法运行该命令,因为不存在以另一个受支持的扩展名结尾的DIR.EXE”,“ DIR.BAT”或“ DIR”文件。(可以通过运行“ ECHO %PATHEXT%来查看支持的扩展名。)

但是,在这种情况下,如果我尝试运行“ CMD /C DIR”,那将起作用,因为Windows将查找名为“ CMD的可执行文件,并将其找到,然后CMD最终成功运行DIR内部的“ ”命令。 “ CMD”命令的一部分。

在这种情况下,您可以powershell像“ CMD /C powershell一样轻松地运行,因此不会从不必要的“ CMD /C”中受益我看到要执行额外的键入“ CMD /C步骤的唯一好处是提供了一个示例,如果有人决定尝试修改示例以运行命令行“ DIR”或“ COPY”,该示例将非常有用有一个更灵活的示例可能对某些人有用。当人们知道自己在做什么时,实际上并不需要它。

至于我提供的第二个要点,即设置环境变量,这也是您在这种特殊情况下不积极进行的事情。也许有人认为通过设置PATH环境变量来帮助解决问题。但是,当您直接运行命令时(例如,从“开始”菜单的“运行”菜单选项中运行),Windows操作系统可能会在某些其他位置查找命令。例如,在Windows XP /更高版本中,您可以运行:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"

如果要运行的命令在“应用程序路径”下列出,则Windows可能会找到该程序,即使该程序不在路径中也是如此。因此,Windows所能找到的甚至比CMD在CMD使用的路径中所能找到的更多。

一个可能的好处是,如果您希望运行CMD,以便可以引用%USERPROFILE%或%LOGONSERVER%或%TEMP%/%TMP%之类的环境变量,但是由于您没有这样做,所以您不必这样做需要运行“ CMD /C”。

因此,对于您的特殊情况:没有充分的理由这样做。您所获得的效果是使计算机执行更多的工作,减慢处理速度并消耗更多的内存(在现代设备上,您所做的所有工作都可以忽略不计)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Sublime Text 3在Powershell中构建C ++而不是CMD

使用CMD / C暂停时Powershell ISE中断

使用cmd或powershell安装Python

c ++为什么要使用引用?

为什么我需要使用 git-bash 而不是 cmd?

使用PowerShell(或CMD)删除PDF密码

Powershell在参数中使用空格运行cmd

从cmd.exe使用多行PowerShell命令

使用CMD或POWERSHELL查找失败的日志文件

如何使用CMD或Powershell打开“此PC”?

通过cmd使用命令启动Powershell

在 cmd 提示符下使用管道运行 PowerShell cmd

什么是C#Using块,为什么要使用它?

使用停止解析从 PowerShell ps1 脚本运行 cmd /c

为什么在 C# 中的 Powershell 脚本中使用 Runspace

我可以在Visual Studio Code中使用cmd而不是PowerShell启动az登录吗?

将Node.exe设置为使用cmd.exe而不是PowerShell

在C ++算法标头中,为什么要使用“!(val <* first)”?

如果有cmd,为什么还要使用PuTTY?

什么是Powershell等效于cmd中的“%*”?

从cmd.exe迁移到PowerShell或使用PowerShell代替其他工具。什么时候使用PowerShell更好?

为什么要使用Makefile而不是仅仅编写C来做到这一点?

使用C的mysqldump cmd

为什么 PowerShell Core 7 在 Windows PowerShell 和 cmd 可以识别 UNC 路径时无法识别?

ffmpeg与Powershell的cmd等效

从cmd运行powershell命令

使用路径作为参数从CMD调用Powershell脚本

使用start运行cmd时,Powershell脚本会挂起

使用普通复制粘贴免费替换cmd / powershell