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

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

[复制链接]
发表于 2008-11-6 21:38:32 | 显示全部楼层 |阅读模式
如:有一个 QQ 昵称为“今日明月在”,(昵称是不是很诗意呢?)

请分别截取“今日”、“明月”、“在”,并显示出来。
====================================
2008-11-07 题目进阶
通过变量截取把 “今日明月在” 变成 “明月今日在” 显示出来。

不知什么是字符截取可参考:
http://bbs.bathome.net/viewthread.php?tid=996&highlight=%BD%D8%C8%A1
http://bbs.bathome.net/viewthread.php?tid=1149&highlight=%BD%D8%C8%A1
下一题:[ 新手习题 2 ] 字符替换
http://bbs.bathome.net/thread-2462-1-1.html

[ 本帖最后由 wxcute 于 2008-11-17 11:29 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 Good work!

查看全部评分

发表于 2008-11-7 02:24:27 | 显示全部楼层
我很郁闷!
有符号我到是搞的出来!居然没了符号搞不出来了!哎!~难到我了!
发表于 2008-11-7 06:28:38 | 显示全部楼层
我顶!谁来回答下!我好学习啊!
发表于 2008-11-7 08:05:34 | 显示全部楼层

回复 3楼 的帖子

少提问,多看帮助和教程,就会了。
set /?
for /?
发表于 2008-11-7 13:09:54 | 显示全部楼层
  1. set str=今日明月在&call ,echo %str:~0,2%&call,echo %str:~2,2%&call,echo %str:~-1,1%&pause
复制代码


话说batcher的新签名很强大,但是我支持!!

评分

参与人数 1PB +2 收起 理由
wxcute + 2 复杂了

查看全部评分

 楼主| 发表于 2008-11-7 15:48:34 | 显示全部楼层

5楼干嘛把代码写得这么复杂呢?

你的代码只能在CMD下运行,不能存为批处理文件运行。
不过有人答对了就加分。
希望大家再接再厉,经过实际测试的代码才是有用的;别光在脑子里想,会把脑子想坏的,呵呵。
发表于 2008-11-7 17:50:12 | 显示全部楼层
IF NOT DEFINED DEBUG @ECHO OFF
SET "VAR1=今日明月在"
SET "VAR2=%VAR1:今日明月=明月今日%"
ECHO %VAR2%

评分

参与人数 2PB 0 收起 理由
netbenton + 1 扣错了,补回来就是了,呵呵
wxcute -1 错啦,是通过变量截取哦。

查看全部评分

 楼主| 发表于 2008-11-7 18:19:42 | 显示全部楼层

回七楼

%VAR1:今日明月=明月今日%
你这样可是字符替换阿,要看清题意。做个小惩罚。
发表于 2008-11-7 20:30:42 | 显示全部楼层

回复 8楼 的帖子

1. 顶楼并未指明答错要扣分。
2. 作为新手练习,出错是在所难免的。
鉴于以上原因,扣分这个做法是否有所不妥呢?
发表于 2008-11-7 20:38:37 | 显示全部楼层
@IF NOT DEFINED DEBUG @ECHO OFF

SET "VAR=今日明月在"
SET "VAR1=%VAR:~2,2%%VAR:~0,2%%VAR:~4,1%"
ECHO %VAR1%

评分

参与人数 1PB +3 收起 理由
wxcute + 3 再简单点就是直接echo了

查看全部评分

 楼主| 发表于 2008-11-8 14:26:17 | 显示全部楼层

回 9 楼

我想评分为 0 ,可发不出去。再一想奖罚分明那才公平,就 -1 吧。

还有 sylovanas 你也见识了,可不是新手。^_^
发表于 2008-11-8 17:31:04 | 显示全部楼层

回复 11楼 的帖子

1.  不管是不是新手,扣分总是会影响积极性。
2. 如果确实需要“奖罚分明”,建议在顶楼明确指出答错要扣分。
尽量避免潜在的不必要的矛盾^_^
 楼主| 发表于 2008-11-8 17:37:23 | 显示全部楼层
知道了,下次一定注意。
发表于 2008-11-11 20:31:56 | 显示全部楼层
通过变量截取把 “今日明月在” 变成 “明月今日在” 显示出来。
  1. @echo off
  2. for /f "tokens=1 delims=今日在" %%a in ("今日明月在") do @(for /f "tokens=1,2 delims=明月" %%i in ("今日明月在") do @echo %%a%%i%%j)
  3. pause
复制代码

评分

参与人数 1PB +2 收起 理由
wxcute + 2 鼓励一下。

查看全部评分

发表于 2008-11-11 21:40:22 | 显示全部楼层
  1. @echo off
  2. set var=今日明月在
  3. echo %var:~0,2%
  4. echo %var:~2,2%
  5. echo %var:~-3,2%
  6. echo %var:~-1%
  7. pause
复制代码
楼上的试用了怎么就一行字的,我的是XP

明白了,眼拙了

[ 本帖最后由 hlzj88 于 2008-11-11 22:03 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 也鼓励一下,过去很长时间了。

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 05:09 , Processed in 0.024997 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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