我正在尝试编写一个PowerShell脚本,通过使用$?
检查是否发生错误来测试MySQL登录是否成功。
我还想抑制命令的所有输出 - 无论成功与否。
这些是我尝试过的方法:
mysql -u root --password=mypass -e "show databases"
If ( $? ) {
echo "Hooray!"
} Else {
echo "Boo!"
}
这段代码能够正常运行,但不会禁止任何输出。
mysql -u root --password=mypass -e "show databases" > $null
功能正常,但如果密码错误不会抑制错误。
mysql -u root --password=mypass -e "show databases" 2> $null
这个功能无法正确运行。在这个例子中,它总是打印出“Boo!”
mysql -u root --password=mypass -e "show databases" > $null 2>&1
这样做可以正确地抑制所有输出,但仍然只会像之前一样打印“Boo!”。
mysql
命令之前,您可以执行$ErrorActionPreference='SilentlyContinue'
,然后在Else
脚本块之后将其设置回$ErrorActionPreference='Continue'
。这样可以防止任何错误显示。 - TheMadTechniciancmd.exe /c dir c:\fakefolder
上运行。 - TheMadTechnician