所以我需要映射一个驱动器,复制一些文件并断开驱动器......问题是我们不知道哪些计算机会有不同的密码...所以我正在尝试使用它,但它似乎无法识别无效密码的错误。
任何帮助将不胜感激。
net use Z: "\\POS1\c$\PATH" %password% /user:%username%
IF ERRORLEVEL 0 goto copy
IF ERRORLEVEL 1 goto retry1
:retry1
net use Z: "\\POS1\c$\PATH" %password2% /user:%username2%
IF ERRORLEVEL 0 goto copy
IF ERRORLEVEL 1 goto retry2
:retry2
net use Z: "\\POS1\c$\PATH" %password3% /user:%username3%
IF ERRORLEVEL 0 goto copy
IF ERRORLEVEL 1 goto POS2
:copy
xcopy /y "c:\avi\aaaaaa.ini" "Z:\"
xcopy /y "c:\avi\aaaaaa.avi" "Z:\"
net use Z: /delete
:POS2
答案 0 :(得分:1)
某些程序和命令会返回errorlevel
或1
以外的0
。它们可能是负数,有数千个等,所以如果net
命令返回errorlevel
个,假设10
为无效密码,它将跳过,因为它不是{{ 1}}或0
大多数情况下,
1
应该工作。
使用变量的示例;
if errorlevel 0 (
goto :copy
) else (
goto :retry1
)
rem Or, a single line version;
if errorlevel 0 (goto :copy) else (goto :retry)
这是为了我对for循环的纯粹快乐。没有逻辑推理,但它显示何时可以使用if %errorlevel% equ 0 (
echo No errors detected!
) else (
echo An error occured: [%errorlevel%]
)
。
!errorlevel!
答案 1 :(得分:1)
if errorlevel 0
没有意义,因为它意味着错误级别0和上面的所有错误级别。
如果要检查错误级别0,则必须编写:if not errorlevel 1 (and above)
答案 2 :(得分:0)
......的含义存在巨大差异。
IF %ERRORLEVEL%==0 yourCommand
和
table = bq.Table(bq_table_ref)
job_id = table.extract(destination=gs_object, format='avro')
我也偶然发现了它。
在第一种情况下,ERRORLEVEL就像一个关键字或函数,你放置" 0"作为一个参数,只有成为" true"如果真正的ErrorLevel返回值0或更高。对于我和任何曾经学过适当的脚本语言并且容易堕落的人来说,这是违反直觉的。
虽然第二个版本是简单的STRING COMPARISON。程序执行时自动将环境变量%ERRORLEVEL%设置为String,例如' 0'你可以将它与你自己的String进行比较,比如0.如果双方/字符串相同,它只匹配。
即使这个案例已经解决了,我认为它有助于其他人理解或对其进行另一种解释。