如何打开一系列编号为01-18的文件夹

时间:2014-09-16 17:06:55

标签: batch-file

我试图使用批处理脚本在每台实验室计算机上打开一个文件夹。计算机标记为01,02,03-18。我不认为有一种方法可以将数字从1转换为01,所以我使用了if语句。但我收到的错误是9 was unexpected at this time

@echo off
setlocal enabledelayedexpansion
SET "z=0"
SET "n=9"
for /L %%x in (1,1,18) do (
  SET v=%%x
  IF %v% LEQ %n%
  (
    SET num=%z%%v%
  ) ELSE (
    SET num=%v%
  )
  start "" "\\lab-!num!\
  pause
)

2 个答案:

答案 0 :(得分:2)

您在括号内放置时遇到问题(请参阅here),以及延迟扩展的使用不一致(您使用的是!num!但不是!v!,这两个变量是更改代码块内部)但可以通过在for循环的值中包含填充来简化代码

for /l %%x in (1001, 1, 1018) do (
    set "num=%%x"
    start "" "\\lab-!num:~-2!\share\folder"
)

答案 1 :(得分:1)

启用delayed expansion时,请在内部使用感叹号进行循环。 不要忘记,左括号必须与if

在同一行
@echo off
setlocal enabledelayedexpansion
SET "z=0"
SET "n=9"
for /L %%x in (1,1,3) do (
  SET v=%%x
  IF !v! LEQ !n! (
    SET num=!z!!v!
  ) ELSE (
    SET num=!v!
  )
  start \\lab-!num!\
  pause
)