Board logo

标题: [文件操作] 批处理怎样取得 for 命令头、尾的值?谢谢! [打印本页]

作者: Shuye    时间: 2023-4-3 15:55     标题: 批处理怎样取得 for 命令头、尾的值?谢谢!


For %%I in (1 2 3 4 5) do @echo %%I
执行结果为:
1
2
3
4
5

怎样取得头、尾的值?
x=1
y=5

谢谢!

作者: qixiaobin0715    时间: 2023-4-3 16:03

  1. setlocal enabledelayedexpansion
  2. for %%i in (1 2 3 4 5) do (
  3.     set /a n+=1
  4.     if !n! equ 1 (
  5.         set x=%%i
  6.     ) else (
  7.         set y=%%i
  8.     )
  9. )
  10. echo,%x%
  11. echo,%y%
复制代码

作者: Shuye    时间: 2023-4-3 16:08

回复 2# qixiaobin0715

好办法,谢谢 qixiaobin0715 兄!

作者: qixiaobin0715    时间: 2023-4-3 17:00

实际上不使用变量延迟也可:
  1. set n=0
  2. for %%i in (1 2 3 4 5) do (
  3.     if defined n (
  4.         set x=%%i
  5.         set n=
  6.     ) else (
  7.         set y=%%i
  8.     )
  9. )
  10. echo,%x%
  11. echo,%y%
复制代码

作者: terse    时间: 2023-4-3 17:21

这里变量N可以不用
for %%i in (1 2 3 4 5) do (
     if not defined x (
        set x=%%i
    ) else set y=%%i

)
echo,%x%
echo,%y%
作者: Shuye    时间: 2023-4-3 17:43

回复 4# qixiaobin0715

测试成功,谢谢 qixiaobin0715 兄!

作者: Shuye    时间: 2023-4-3 17:43

回复 5# terse

测试成功,谢谢 terse 兄!





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