[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样取得 for 命令头、尾的值?谢谢!


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

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

谢谢!

  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%
复制代码
1

评分人数

    • Shuye: 好办法!技术 + 1

TOP

回复 2# qixiaobin0715

好办法,谢谢 qixiaobin0715 兄!

TOP

实际上不使用变量延迟也可:
  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%
复制代码
1

评分人数

    • Shuye: 测试成功!技术 + 1

TOP

这里变量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%
2

评分人数

    • qixiaobin0715: 利用第1个变量判断,巧妙!!!技术 + 1
    • Shuye: 测试成功!技术 + 1

TOP

回复 4# qixiaobin0715

测试成功,谢谢 qixiaobin0715 兄!

TOP

回复 5# terse

测试成功,谢谢 terse 兄!

TOP

返回列表