function - 如何使用 Powershell 处理 if 语句的某些功能?
问题描述
我想用 if 语句处理我的函数。我尝试了这段代码,但它总是返回我的值,$End_F
甚至"BB"
我的文件包含"@AB@CD"
. 任何人都可以帮忙,拜托。
我寻找“@AB@CD”的文件是这样的。
Config
; Date="2019/06/12" Time="10:25:02" UTC="0"
;
Number
123456@AB@CD
$Get_SKU = Get-Content '.\Number.txt' | Where-Object {$_.Contains("@AB@CD")}
$Get_SKU
if($Get_SKU)
{$ML = "1"
AUTO_SELECT
}
else
{
END_Proc
}
Function AUTO_SELECT
{
$AT = "AA"
$AT
}
Function END_Proc
{
$End_F = "BB"
$End_F
}
$FE_UB = "4"
if($ML = "1" -and $FE_UB -eq $true)
{
G_BEGIN
}
if($ML = "1" -and $FE_UB -eq $false)
{
G_END
}
else
{
END_Proc
}
Function G_BEGIN
{
$begin = "Ready"
$begin
}
Function G_END
{
$ending = "Stop"
$ending
}
解决方案
有些事情需要更正以使您的代码按预期工作。
Function AUTO_SELECT
{
$AT = "AA"
$AT
}
Function END_Proc
{
$End_F = "BB"
$End_F
}
Function G_BEGIN
{
$begin = "Ready"
$begin
}
Function G_END
{
$ending = "Stop"
$ending
}
$Get_SKU = Get-Content '.\Number.txt' | Where-Object {$_.Contains("@AB@CD")}
$Get_SKU
if($Get_SKU)
{
$ML = "1"
AUTO_SELECT
}
else
{
END_Proc
}
$FE_UB = "4"
if($ML -eq "1" -and $FE_UB)
{
G_BEGIN
}
if($ML -eq "1" -and !$FE_UB)
{
G_END
}
else
{
END_Proc
}
变更说明:
$Get_SKU
$null
将根据Where-Object
条件是否找到匹配项来存储其中一个或一个字符串。结果,我换成if ($Get_SKU -eq $true)
了if ($Get_SKU)
. 如果is not ,此更改将导致$true
评估。$Get_SKU
$null
- 我将函数移到脚本的顶部,因为 PowerShell 从上到下执行代码。它不是首先编译的。因此,在函数被读入内存并定义之前,您不能进行函数调用。
if ($ML = "1" -and $FE_UB -eq $true)
已更新为,if ($ML -eq "1" -and $FE_UB)
因为变量赋值variable = value
不应该发生在 if 语句条件中。如果您要比较值,则此处正确的运算符是-eq
. 关于$FE_UB
,与变更中的说明相同$Get_SKU
。$FE_UB -eq $false
已更改为!$FE_UB
. 运算符的删除-eq $false
是基于给出的解释$Get_SKU
。!
字符用于有效的-not
结果。这会将值转换为布尔值,然后输出相反的布尔响应。例如,!"string data"
将输出$False
.!$null
将输出$True
. 我希望这部分很清楚。
进一步的见解:
$True
和$False
评价你可以让任何东西返回一个布尔值。三种这样的方法包括使用强制转换、
-as
运算符和!
. 还有许多其他方法和技巧可以做到这一点。铸件:
$get_sku = "data" [boolean]$get_sku True
-as
操作员:$get_sku = $null $get_sku -as [boolean] False
乐趣
!
:$get_sku = 4 !$get_sku False !!$get_sku True
推荐阅读
- vuex - 访问 quasar 中的 store vuex for meta
- laravel - Laravel group by、count 和 access 和 eloquent 的关系
- c# - C# MVVM ASP.net API 隐式转换错误
- websocket - 现在还需要 websocket 回退吗?
- nginx - nginx 未检测到 CSS 和 JS - 服务器响应状态为 404
- django - 如何在 django 模板中使上下文变量动态化
- angular - Does not have http ok status error in angular with webapi
- javascript - How to use animation on angular 8?
- react-native - {Flex: 1} 不适用于相对定位
- python - 发送邮件 python asyncio