Board logo

标题: [其他] 求助代码查错:‘if’ 不是内部或外部命令,也不是可运行的程序 [打印本页]

作者: 674478095    时间: 2016-4-2 13:01     标题: 求助代码查错:‘if’ 不是内部或外部命令,也不是可运行的程序

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo.
  4. set Drive=0
  5. For /F "Skip=1" %%i in ('Wmic Logicaldisk Where "DriveType=3" Get Name') Do (
  6. set /a Drive=!Drive!+1
  7. set Drive[!Drive!]=%%i
  8. )
  9. set /a Drive=!Drive!-1
  10. set var=1
  11. :DriveChoose
  12. echo.
  13. set /p output=请选择安装磁盘(<nul
  14. for /l %%i in (1,1,!Drive!) do (
  15. call set  /p output=%%Drive[%%i]::=%%/<nul)
  16. echo )
  17. set  /p enter=请输入安装磁盘:
  18. for /l %%i in (1,1,!Drive!) do (
  19. call set "output=if [%%%%enter%%%%]==%%Drive[%%i]::=%% do (set var=0)"
  20. !output!
  21. )
  22. if %var%==1 (goto :DriveChoose)
  23. echo ............
  24. pause
复制代码

作者: happy886rr    时间: 2016-4-2 13:28

  1. %output%
复制代码
回复 1# 674478095
作者: gawk    时间: 2016-4-2 13:41

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set drive=0
  4. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do (
  5.     set /a drive+=1
  6.     set drive[!drive!]=%%i
  7. )
  8. set /a drive-=1
  9. set var=1
  10. :drivechoose
  11. echo.
  12. set /p output=请选择安装磁盘(<nul
  13. for /l %%i in (1,1,!drive!) do (
  14.     call set  /p output=%%drive[%%i]::=%%/<nul)
  15.     echo 
  16. )
  17. set  /p enter=请输入安装磁盘:
  18. for /l %%i in (1,1,!drive!) do (
  19.     set str=!drive[%%i]:~0,1!
  20.     if /i "!enter!"=="!str!" (
  21.         set var=0
  22.     )
  23. )
  24. if %var%==1 (goto :drivechoose)
  25. echo ............
  26. pause
复制代码

作者: CrLf    时间: 2016-4-2 18:20

if 和 for 最特殊,不能通过 !var! 或 %%a 的形式执行,甚至不能前置重定向




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2