我可以得到&&在Powershell中工作吗?
在google上search&&是非常困难的,但是我发现的最好的是这篇文章 ,它说使用-and 。 
 不幸的是,它没有提供任何更多的信息,我也找不到我应该做什么-and (再次,一个非常难以search的东西) 
我试图使用它的上下文是“执行cmd1,如果成功,执行cmd2”,基本上是这样的:
 csc /t:exe /out:a.exe SomeFile.cs && a.exe 
这应该是一个简单的几个代表知道的人,谢谢!
 编辑:如果你只是想在一行上运行多个命令而不关心第一个命令是否失败,你可以使用; 对于我的大部分目的来说,这很好 
 例如: kill -n myapp; ./myapp.exe  kill -n myapp; ./myapp.exe 。 
在CMD中,'&&'表示“执行命令1,如果成功执行命令2”。 我用它来做这样的事情:
 build && run_tests 
在PowerShell中,您可以做的最接近的事情是:
 (build) -and (run_tests) 
它具有相同的逻辑,但命令的输出文本丢失。 不过,也许这对你来说已经足够了。
编辑
如果你正在用脚本来做这件事,你可能会更好地分离这些陈述,如下所示:
 build if ($?) { run_tests } 
&&和|| 是在实现的东西(仍然),但没有popup作为下一个最有用的东西要添加的列表。 原因是我们有-AND和-OR。 如果您认为这很重要,请提交关于Connect的build议,我们会考虑使用V3。
尝试这个:
 $errorActionPreference='Stop'; csc /t:exe /out:a.exe SomeFile.cs; a.exe 
我在PowerShell中尝试了这一系列命令:
Fisrttesting
 PS C:\> $MyVar = "C:\MyTxt.txt" PS C:\> ($MyVar -ne $null) -and (Get-Content $MyVar) True 
  ($MyVar -ne $null)返回true,并且(Get-Content $MyVar)也返回true 。 
第二次testing
 PS C:\> $MyVar = $null PS C:\> ($MyVar -ne $null) -and (Get-Content $MyVar) False 
  ($MyVar -ne $null)返回false ,所以我必须假设(Get-Content $MyVar)也返回false 。 
第三个testingcertificate第二个条件甚至没有被分析。
 PS C:\> ($MyVar -ne $null) -and (Get-Content "C:\MyTxt.txt") False 
  ($MyVar -ne $null)返回false ,certificate第二个条件(Get-Content "C:\MyTxt.txt")永远不会运行,在整个命令上返回false 。 
我认为一个简单的if语句可以做到这一点。 一旦我看到mkelement0的响应高于最后一个退出状态存储在$ ?,我把以下一起:
 # Set 1st command to variable $a=somecommand # Temp var to store exit status of last command (since we can't write to $?) $test=$? # Run Test if ($test=$true) { 2nd-command } 
所以对于op的例子来说,这将是:
 a=(csc /t:exe /out:a.exe SomeFile.cs); $test = $?; if ($test=$true) { a.exe } 
这取决于上下文,但这里有一个“ – 和”的例子:
 get-childitem | where-object { $_.Name.StartsWith("f") -and $_.Length -gt 10kb } 
所以在文件名以“f”开头的目录下,所有文件都大于10kb。
 if (start-process filename1.exe) {} else {start-process filename2.exe} 
它比“&&”稍长一些,但是没有脚本就能完成同样的事情,而且不会太难记。 迟到总比不到好。 🙂
我们可以试试这个命令,而不是使用&&方法
尝试{主机名; 如果($ lastexitcode -eq 0){ipconfig / all | findstr / i bios}} catch {echo err} finally {}