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

[ 新手练习 1 ] 批处理简易变量截取

[复制链接]
发表于 2009-7-6 19:31:04 | 显示全部楼层
set a=今日明月在
for /f "delims=明" %%i in ("%a%") do echo %%i
for /f "tokens=2 delims=日" %%i in ("%a%") do for /f "delims=在" %%j in ("%%i") do echo %%j
for /f  "tokens=2 delims=月" %%i in ("%a%") do echo %%i
发表于 2009-7-6 19:49:10 | 显示全部楼层

回复 46楼 的帖子

set a=今日明月在
for /f "delims=明" %%i in ("%a%") do echo %%i
for /f "tokens=2 delims=日" %%i in ("%a%") do for /f "delims=在" %%j in ("%%i") do echo %%j
for /f  "tokens=2 delims=月" %%i in ("%a%") do echo %%i


请学会使用code将代码括起来:
Q:如何用code将代码括起来?
A:http://bbs.bathome.net/viewthread.php?tid=404&highlight=code

另:请给代码加上@echo off和pause,利于测试。
发表于 2009-7-7 01:08:13 | 显示全部楼层
@echo off &set word=今日明月在
echo %word:~0,2% , %word:~2,2% , %word:~4,1% &pause>nul

ps:不知何解,只贴quote的内容发不出来,forum通知字数低于十字

[ 本帖最后由 Taurus 于 2009-7-7 01:13 编辑 ]

评分

参与人数 1PB +1 收起 理由
wxcute + 1 代码请用CODE,而不要用QUOTE。 另:提示字 ...

查看全部评分

发表于 2009-7-9 03:46:11 | 显示全部楼层

答案

@echo off
set qq=今日明日在
rem 原题是下面一句
echo %qq:~0,2% & echo %qq:~2,2% & echo %qq:~4%
rem 加强后是下面的
set qq=%qq:~2,2%%qq:~0,2%%qq:~4%
rem 如果上面这句看不懂,可以分成星号之间的三句
echo %qq%
pause>nul
rem 结束
*********************
set qq=%qq:~2,2%^
%qq:~0,2%^
%qq:~4%
*********************
发表于 2009-8-3 11:14:08 | 显示全部楼层
  1. @echo off
  2. set str=今日明月在
  3. set var=%str:~2,2%&set a=%str:~-5,2%&set b=%str:~4,1%
  4. echo %var%%a%%b%
  5. pause>nul
复制代码

评分

参与人数 1PB +1 收起 理由
wxcute + 1 加油哦。

查看全部评分

发表于 2009-8-7 16:01:31 | 显示全部楼层

  1. @echo off
  2. set p=今日明月在
  3. ::用两种方法实现"今日 明月 在"的效果
  4. echo %p:~0,2%
  5. echo %p:~2,2%
  6. echo %p:~4,1%
  7. echo %p:~-5,2%
  8. echo %p:~-3,2%
  9. echo %p:~-1,1%
  10. ::实现"明月今日在"
  11. echo %p:~2,2%%p:~0,2%%p:~4,1%
  12. pause
复制代码

[ 本帖最后由 wwenyunkui 于 2009-8-7 16:02 编辑 ]
发表于 2009-8-8 23:37:50 | 显示全部楼层
@echo off

set nc=今日明月在
echo %nc:~2,2% %nc:~0,2% %nc:~-1,1%

pause
发表于 2009-8-12 16:56:12 | 显示全部楼层

  1. @echo off
  2. set var=今日明月在
  3. echo %var:~,2%
  4. echo %var:~2,2%
  5. echo %var:~4,5%
  6. pause>nul
复制代码

[ 本帖最后由 wayaoqiang 于 2009-8-17 21:06 编辑 ]
发表于 2009-8-13 08:48:15 | 显示全部楼层
  1. @echo off
  2. set "var=今日明月在"
  3. echo 第1题:
  4. echo.
  5. echo %var:~0,2%
  6. echo %var:~-3,2%
  7. echo %var:~-1%
  8. echo.
  9. echo 第2题:
  10. echo.
  11. echo %var:~-3,2%%var:~0,2%%var:~-1%
  12. pause
复制代码

对于第2题中,
  1. echo %var:~-3,2%%var:~0,2%%var:~-1%
复制代码

这一句不知语法有没有错?感觉几个变量连在一起没有分隔好像有点不对的?

评分

参与人数 1PB +1 收起 理由
wxcute + 1 有时这个“感觉”是不可靠的,看看实际测试 ...

查看全部评分

发表于 2009-8-15 04:51:30 | 显示全部楼层
@echo off
set str=今日明月在
echo %str%
echo %str:~2,2%%str:~0,2%%str:~4,1%
pause>nul
嘿嘿~~~~~~~~~我也会了!
发表于 2009-8-18 22:55:17 | 显示全部楼层

  1. @echo off

  2. set str=今日明月在

  3. echo %str:~2,2%%str:~0,2%%str:~4,1%

  4. pause
复制代码

[ 本帖最后由 atsivsucks 于 2009-8-19 08:54 编辑 ]
发表于 2009-8-22 19:09:53 | 显示全部楼层
批处理简易变量截取:
@echo off
:定义字符串
set  str=有一个QQ昵称为“今日明月在”,(昵称是不是很有诗意呢?)。
:截取字符
set a=%str:~9,2% & set b=%str:~11,2% & set c=%str:~13,1%
echo %a%
echo %b%
echo %c%
pause>nul
发表于 2009-8-23 11:50:28 | 显示全部楼层

练习

@echo off 今日明月在
set str=今日明月在
set var1=%str:~0,2%
set var2=%str:~2,2%
set var3=%str:~4,1%
echo set str=%var1%%var2%%var3%
pause>nul
发表于 2009-8-25 17:17:42 | 显示全部楼层
方法1:提取并颠倒显示
@ECHO OFF
SET X=今日明月在
ECHO %X:~2,2%%X:~0,2%%X:~-1%

方法2:改变法
@ECHO OFF
SET X=今日明月在
SET Y1=%X:今日=JR%

SET Y2=%Y1:明月=MY%
SET Z1=%Y2:JR=明月%
SET Z2=%Z1:MY=今日%
ECHO %Z2%

[ 本帖最后由 DXSX 于 2009-8-25 17:26 编辑 ]
发表于 2009-8-27 18:03:08 | 显示全部楼层
@echo off
set a=今日明月在
set b=%a:~0,2%
set c=%a:~2,2%
set d=%a:~-1%
echo %b%
echo %c%
echo %d%
echo %c%%b%%d%
pause
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:41 , Processed in 0.023556 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表