是的,我知道,有数十篇与此标题几乎相同的帖子;但是,我似乎无济于事。
我只是试图从Powershell脚本中调用具有参数/开关的可执行文件。对于具有不同命令和参数列表的脚本,我需要运行约50种不同的可执行文件。我什至不知道如何运行大多数米老鼠示例。如果我找到运行以下解决方案的解决方案,则可能可以推断出该解决方案以适合我的需求。
- rmdir“ C:\ SomePath” / S / Q
- 目录/ s / b
我已经尝试了许多方法,很多方法都发布了解决方案,但都没有一个(对我来说)有效,并且几乎所有这些方法都产生相同的错误。对于上面的示例,我通常得到以下之一:
- “找不到一个接受参数'/ S'的位置参数。” 或者
- “找不到路径'D:\ s',因为它不存在。”
我尝试了使用&符号调用运算符,拆分参数,转义引号,Invoke-Process,Start-Process,Invoke-Expression等的各种指定解决方案,甚至没有任何错误可以运行。
具有讽刺意味的是,我能够使用开关运行某些命令而不会出现任何错误。例如,运行以下文件时不会出现任何错误,而不会转义/包装/封装-仅在脚本中包含该行。您会注意到它具有开关,并且那些开关带有斜杠。
- taskkill / f / im MyTask
此外,以下两项工作(注意斜杠与非斜杠):
- ping -n 3 -4 -l 64 yahoo.com
- ping / n 3/4 / l 64 yahoo.com
因此,斜线似乎不是问题。我只是不知道为什么上面的例子不起作用。
请,我不是在寻找以上示例的Powershell等效项。即,我不是在寻找Get-ChildItem解决方案的dir或Remove-Item解决方案的rmdir。我实际上是在研究如何在Powershell中调用具有参数的可执行文件。并具体使用这些示例。了解dir / rmdir示例为什么在taskkill和ping不能工作的同时还不起作用,这也将是很高兴的。
预先感谢您的回复。任何帮助将不胜感激。
dir
不是可执行文件。这是一个内置的shell命令-PowerShell和Cmd都有自己的内部命令“ dir”,并且它们接受完全不同的参数。(PowerShell版本实际上是Get-ChildItem的别名,并且需要标准的PS样式参数。)
要从PowerShell调用内置的Cmd,请通过cmd.exe /c
以下命令运行它:
cmd /c rd/s/q C:\SomePath
cmd /c "dir /s /b"
(或使用PowerShell实施完全相同的功能Get-ChildItem
。)
同样,要从Cmd调用PowerShell内置的,您可以调用powershell.exe:
powershell -Command "gci -recurse C:\SomePath | % {echo $_.Name}"
您的其他示例是独立的可执行文件(taskkill.exe和ping.exe),因此它们的行为在外壳之间没有区别。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句