中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 问个删除文件的批处理 上一主题 | 下一主题
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 16 楼』:  

你要的延时变量所达到的效果:

第二种方法:
@echo %dbg% off
setlocal enabledelayedexpansion

set b=0
for /l %%i in (0,1,4) do (
        echo !b!
        call set /a b+=1
)
输出如下:
C:\TEMP\k>b.bat
0
1
2
3
4




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 03:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 17 楼』:  

楼上的兄弟,你完全是在偷巧阿
这样,我要求
@echo %dbg% off

for /L %%i in (0,1,4) do (
        echo %%i
)
echo %%i 中不能用%%i来显示,要用另外一个变量显示,该变量和%%i一点关系都不能有

2006-11-7 03:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 18 楼』:  

onlykier兄,看了你8楼的代码例子,并运行了很多次并调试……
不过,你上面要处理的问题并没有跟上你的思路:)

你想了如何去解决一个问题,可是偏偏出现错误的地方几乎全都是因为一些基础的知识点所影响着:)
而onlykier兄的学习速度太快了,但最后还要回到那些基础的变量赋值、SET、延时变量、For的结构、特殊符号的运行和转义……

所以,建议onlykier把下面链接中所提到的知识点重新、从头到尾的一行一行代码全都键入一遍~:)
然后回过头来再看,相信onlykier兄会超越现在……
而这一切过程很可能仅仅几天甚至一、两天就够了,
可是这一两天的从头到尾做一遍这些知识点,相信onlykier永远都不再会问题了,
而是开始走入了知道如何处理一些不知道的问题并可以极快的找到办法:)


[简单索引]关于SET变量、延时变量、各种符号的用法……
http://www.cn-dos.net/forum/viewthread.php?tid=24549&fpage=1

[ Last edited by redtek on 2006-11-7 at 03:57 AM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 03:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 19 楼』:  

楼上的兄弟,你杀了我吧
我再来个例子
我只想显示第一行,下面的代码确都显示,why?
@echo off
dir d: /b>>d:\1.txt
set c=0
echo 1,%c%
for /f %%i in (d:\1.txt) do (
if %c% equ 0 (set c=1
echo 2,%c%
echo %%i)
)

[ Last edited by onlykier on 2006-11-6 at 03:12 PM ]

2006-11-7 04:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 20 楼』:  

楼上的兄弟,我不杀你,还是你让我自杀吧~:)

你的 for (你这里不加 /f 参数能读出文件内容来吗?) %%i in (d:\1.txt) do (



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 04:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 21 楼』:  

我修改了,楼上的兄弟,你qq多少,我等答案等的的心痛啊

2006-11-7 04:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 22 楼』:  

set c=1
echo 2,%c%
为什么输出的 %c%还是0阿??

2006-11-7 04:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 23 楼』:  

论坛翻页,没看到redtek 的第二种方法 ^^!
set b=0
for /l %%i in (0,1,4) do (
        echo !b!
        call set /a b+=1
再请教下,这里问什么要有call呢?

2006-11-7 04:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 24 楼』:  


@echo %dbg% off
::   延时变量
setlocal enabledelayedexpansion

dir d: /b>>d:\1.txt
set c=0
echo 1,%c%

::  /f 参数
::  "delims=" 可以读取含空格的字符串……
for /f "delims=" %%i in (d:\1.txt) do (

        if !c! equ 0 (
                set c=1
                echo 2,!c!
                echo %%i
        )
)

建议这样按缩进书写代码:)
[ Last edited by redtek on 2006-11-7 at 04:36 AM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 04:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 25 楼』:  


@echo off
dir c:\ /b>>c:\1.txt
set /p s=<c:\1.txt
echo %s%
pause


   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-11-7 04:33


2006-11-7 04:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by onlykier at 2006-11-7 04:28:
论坛翻页,没看到redtek 的第二种方法 ^^!
set b=0
for /l %%i in (0,1,4) do (
        echo !b!
        call set /a b+=1
再请教下,这里问什么要有call呢?

那个 call 删了吧,那是做别的实验留下的COPY上来时忘了删了~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 04:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 27 楼』:  

lxmxn兄代码非常简捷,欣赏~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-7 04:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
onlykier
初级用户





积分 50
发帖 23
注册 2006-11-3
状态 离线
『第 28 楼』:  

@echo off
dir c:\ /b>>c:\1.txt
set /p s=<c:\1.txt
echo %s%
pause
这段代码为什么只显示第一行?
我觉的应该显示好多阿,因为c:\1.txt内容给了s了阿

2006-11-7 04:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: