因此,我创建了一个脚本来检查某些文件夹/文件路径,这样做很好,在检查是否找到文件夹的过程中,它将变量的值更改为“ found”。如果找不到该文件夹,它将值保留为默认的“ NA”。但是,返回显示值的菜单时,返回的只是“ ECHO IS OFF”。首先,我尝试将它们保存到日志文件中,但是它拒绝保存它们。我猜这也使我无法查看这些值。
我已经尝试添加“ IF NOT”以确保它没有碰到丢失的文件夹,然后拒绝设置值,但这就是我能想到的。
这是一段代码。
在检查期间:
IF EXIST System\SystemCore set SC= Found
IF EXIST System\SystemCore\4BIOS set SC4B= Found
IF EXIST System\SystemCore\4BIOS\Default set SC4BD= Found
goto :DCV
之后,显示值的菜单:
:DCV
echo %SC%
echo %SC4B%
echo %SC4BD%
echo %SC4BB%
echo %SC4BOK%
echo %SCCAGOL%
echo %SCCAGOLG%
echo %SCCAE%
echo %SSST%
echo %CLB%
echo %ITC%
echo %SSSTF%
echo %UPF%
echo %SUU%
echo %UUTF%
我进入了这个,不希望出现任何错误,但是到了。 没有诸如“系统找不到...等”之类的错误
答案 0 :(得分:1)
如果您想回显任何内容,包括空行,则可以添加“。”。在echo命令和变量之间,例如:
echo.%SC%
echo.%SC4B%
echo.%SC4BD%
echo.%SC4BB%
echo.%SC4BOK%
echo.%SCCAGOL%
echo.%SCCAGOLG%
echo.%SCCAE%
echo.%SSST%
echo.%CLB%
echo.%ITC%
echo.%SSSTF%
echo.%UPF%
echo.%SUU%
echo.%UUTF%
答案 1 :(得分:1)
即使不讨论代码中的空白之类的其他因素,您也可以简单地恢复为if defined
来测试变量是否具有值,并且只有在这样做的情况下,echo
才能执行此示例在每个变量的for循环中。
@echo off
setlocal enabledelayedexpansion
for %%i in (SC SC4B SC4BD SC4BB SC4BOK SCCAGOL SCCAGOLG SCCAE SSST CLB ITC SSSTF UPF SUU UUTF) do if defined %%i echo !%%i!
答案 2 :(得分:0)
事实证明,在测试过程中,我是从本身启动integcheck.bat的,并给出了由OS4或4BIOS调用所需的完整目录路径,从任何一个调用之后,它都能正常工作。尽管某些值确实返回了ECHO IS OFF
,但我认为这是因为它正在检查同一目录,只是前面的一个路径。
我从错误中学到了东西。
要解决此问题,请按此顺序致电; OS4-> 4BIOS->集成检查
假设正确设置了所有文件路径,并且将值预定义为NA
,一切正常。