Shell 使用&&;

Shell 使用&&;,shell,powershell,syntax,cmd,Shell,Powershell,Syntax,Cmd,CMD的等效声明是什么: dir && cd .. 在地狱里 我试过: dir -and cd .. 但这会带来错误: Get ChildItem:找不到与参数名称匹配的参数 “和” 第1行字符数:5 +dir-和(cd.) +类别信息:InvalidArgument:(:)[Get ChildItem],参数BindingException +FullyQualifiedErrorId:NamedParameterNotFound,Microsoft.PowerShell

CMD的等效声明是什么:

dir && cd ..
在地狱里

我试过:

dir -and cd ..
但这会带来错误:

Get ChildItem:找不到与参数名称匹配的参数 “和”

第1行字符数:5

+
dir-和(cd.)

+
类别信息:InvalidArgument:(:)[Get ChildItem],参数BindingException

+
FullyQualifiedErrorId:NamedParameterNotFound,Microsoft.PowerShell .Commands.GetChildItemCommand


在cmd.exe的PowerShell中没有直接的等价物&&,这意味着“只有在左侧成功的情况下才执行右侧”。不过,您可以编写一个简短的函数来执行等价物:

function IfTrue([ScriptBlock] $testExpression, [ScriptBlock] $runExpression) {
  if ( & $testExpression ) { & $runExpression }
}
例如:

IfTrue { get-childitem "fileThatExists.txt" -ea SilentlyContinue } { "File exists..." }
如果希望$testExpression生成输出,可以按如下方式编写IfTrue函数:

function IfTrue([ScriptBlock] $testExpression, [ScriptBlock] $runExpression) {
  & $testExpression
  if ( $? ) { & $runExpression }
}

Bill

在cmd.exe的PowerShell中没有直接的等价物&,这意味着“只有在左侧成功的情况下才执行右侧”。不过,您可以编写一个简短的函数来执行等价物:

function IfTrue([ScriptBlock] $testExpression, [ScriptBlock] $runExpression) {
  if ( & $testExpression ) { & $runExpression }
}
例如:

IfTrue { get-childitem "fileThatExists.txt" -ea SilentlyContinue } { "File exists..." }
如果希望$testExpression生成输出,可以按如下方式编写IfTrue函数:

function IfTrue([ScriptBlock] $testExpression, [ScriptBlock] $runExpression) {
  & $testExpression
  if ( $? ) { & $runExpression }
}
比尔这个怎么样

dir; if ($?) {cd ..}
运行
获取有关自动变量的帮助|更多
说明:

美元?包含上次操作的执行状态。它包含 如果上次操作成功,则为TRUE;如果操作失败,则为FALSE

在PS中,
dir
只是
get ChildItem
的别名<代码>cd同样适用于
设置位置

编辑:同样的问题,包括直接从马嘴里问出来的问题。

这个怎么样

dir; if ($?) {cd ..}
运行
获取有关自动变量的帮助|更多
说明:

美元?包含上次操作的执行状态。它包含 如果上次操作成功,则为TRUE;如果操作失败,则为FALSE

在PS中,
dir
只是
get ChildItem
的别名<代码>cd同样适用于
设置位置


编辑:同样的问题,包括直接从马嘴里问出来的问题。

比尔,我尝试了
IfTrue{get childitem dir-ea SilentlyContinue}{cd..}
但没有显示任何内容(没有目录列表)!有什么想法吗?你有一个叫做“dir”的文件系统项目吗“dir”是PowerShell中“get childitem”的别名。恐怕不是。老实说,我对PowerShell还不熟悉。请您解释一下您的答案,让
dir
cd..
在一条语句中工作好吗?谢谢。我试过“IfTrue{dir-ea SilentlyContinue}{cd..}”。
cd..
似乎可以工作,但是
dir
没有列出目录。我甚至删除了
-ea SilentlyContinue
,但仍然没有成功。我更新了我的答案(见上文),加入了新版本的IfTrue函数。函数的第二个版本生成输出。比尔,我尝试了
IfTrue{get childitem dir-ea SilentlyContinue}{cd..}
,但没有显示任何内容(没有目录列表)!有什么想法吗?你有一个叫做“dir”的文件系统项目吗“dir”是PowerShell中“get childitem”的别名。恐怕不是。老实说,我对PowerShell还不熟悉。请您解释一下您的答案,让
dir
cd..
在一条语句中工作好吗?谢谢。我试过“IfTrue{dir-ea SilentlyContinue}{cd..}”。
cd..
似乎可以工作,但是
dir
没有列出目录。我甚至删除了
-ea SilentlyContinue
,但仍然没有成功。我更新了我的答案(见上文),加入了新版本的IfTrue函数。函数的第二个版本生成输出。Noam,谢谢你的回答。这个方法很好用!OTOTH,是否有任何原因(如与PS基金会冲突)不支持批处理操作?没有足够的升级票?Noam,谢谢你的回答。这个方法很好用!OTOTH,是否有任何原因(如与PS基金会冲突)不支持批处理操作?没有足够的upvotes?请在此处投票:和此处投票:和此处投票: