中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 不知如何编写批处理把这些数字放在4个问号里.
« [1] [2] »
作者:
标题: 不知如何编写批处理把这些数字放在4个问号里. 上一主题 | 下一主题
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『楼 主』:  不知如何编写批处理把这些数字放在4个问号里.

自动分区批处理是这样编写的
dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y


不知如何编写批处理把5000  20000 20000 45000放在4个问号里.
谢谢各位高手帮忙!!!!
dm 1 /cre /pri /sz:< 1 ? > /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:< 2 ? > /for /q /y
dm 1 /cre /log /sz:< 3 ? > /for /q /y
dm 1 /cre /log /sz:< 4 ? > /for /q /y

2007-3-12 09:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


  完全根据你的目的来写的:
@echo off&setlocal enabledelayedexpansion
set numbers=5000 20000 20000 45000
set a=1
for %%a in (%numbers%) do (
    if !a! EQU 1 >>temp.bat (echo dm 1 /cre /pri /sz:%%a /for /q /y&echo dm 1 /cre /ext)
    if !a! GEQ 2 >>temp.bat (echo dm 1 /cre /log /sz:%%a /for /q /y)
    set /a a+=1
)
start "" notepad temp.bat
exit/b


[ Last edited by lxmxn on 2007-3-11 at 09:18 PM ]

2007-3-12 10:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 3 楼』:  

末试过...先谢过2楼的
谢谢lxmxn高手帮忙!!!!

2007-3-12 12:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 4 楼』:  

我的意思是点击批处理文件.跟着执行批处理文件..打开窗口..输入5000  20000 20000 45000
跟着执行以下批处理程序
dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y

2007-3-12 12:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 5 楼』:  

谢谢各位高手帮忙!!!!

2007-3-12 12:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

  其实稍微把我写的批处理修改一下就可以达到你的目的了,代码如下:(未测试,有问题继续跟贴讨论)
@echo off&setlocal enabledelayedexpansion
set /p numbers=请输入参数:
set a=1
for %%a in (%numbers%) do (
    if !a! EQU 1 >>temp.bat (echo dm 1 /cre /pri /sz:%%a /for /q /y&echo dm 1 /cre /ext)
    if !a! GEQ 2 >>temp.bat (echo dm 1 /cre /log /sz:%%a /for /q /y)
    set /a a+=1
)
call temp.bat
exit/b


2007-3-13 02:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 7 楼』:  

不新建temp.bat文件....立刻执行

dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y

以上批处理程序....
谢谢lxmxn热心帮忙!!!!

2007-3-13 04:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


  Re zch1366:
再次修改即可:
@echo off&setlocal enabledelayedexpansion
set /p numbers=请输入参数:
set a=1
for %%a in (%numbers%) do (
    if !a! EQU 1 (dm 1 /cre /pri /sz:%%a /for /q /y&dm 1 /cre /ext)
    if !a! GEQ 2 (dm 1 /cre /log /sz:%%a /for /q /y)
    set /a a+=1
)
exit/b


2007-3-13 04:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 9 楼』:  

我这方面是菜鸟...lxmxn麻烦你了!!!
如何加多后面两行程序
dm 1 /cre /pri /sz:< 1 ? > /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:< 2 ? > /for /q /y
dm 1 /cre /log /sz:< 3 ? > /for /q /y
dm 1 /cre /log /sz:< 4 ? > /for /q /y
dm 1 /cre /log /for /q /y
dm 1 /act /p:1

dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y
dm 1 /cre /log /for /q /y
dm 1 /act /p:1

2007-3-13 04:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 10 楼』:  

我的意思是点击批处理文件.跟着执行批处理文件..打开窗口..输入5000  20000 20000 45000
dm 1 /cre /pri /sz:< 1 ? > /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:< 2 ? > /for /q /y
dm 1 /cre /log /sz:< 3 ? > /for /q /y
dm 1 /cre /log /sz:< 4 ? > /for /q /y
dm 1 /cre /log /for /q /y
dm 1 /act /p:1


跟着显示以下窗口.....<<看看程序是否正确..跟着执行程序>>
dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y
dm 1 /cre /log /for /q /y
dm 1 /act /p:1


跟着按回车键执行下以批处理程序
dm 1 /cre /pri /sz:5000 /for /q /y
dm 1 /cre /ext
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:20000 /for /q /y
dm 1 /cre /log /sz:45000 /for /q /y
dm 1 /cre /log /for /q /y
dm 1 /act /p:1

lxmxn麻烦你了!!!
真是不好意思

2007-3-13 04:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

  Re zch1366:
  没关系,大家互相学习啊。这个可以算是v4.0版了,呵呵:
@echo off&setlocal enabledelayedexpansion
set /p numbers=请输入参数:
If NOT DEFINED numbers (echo Error&pause&exit/b)
set a=1
set b=2
for %%a in (%numbers%) do (
    if !a! EQU 1 (set "str1=dm 1 /cre /pri /sz:%%a /for /q /y"&set "str2=dm 1 /cre /ext")
    if !a! GEQ 2 (set /a b+=1&set "str!b!=dm 1 /cre /log /sz:%%a /for /q /y")
    set /a a+=1
)
set "str6=dm 1 /cre /log /for /q /y"
set "str7=dm 1 /act /p:1"
for /f "delims== tokens=1*" %%a in ('set str') do (echo %%b)
set /p choose=请检查上面的程序是否正确,如错误按Q键回车退出,其它键执行?
if /i "%choose%"=="q" exit/b
for /l %%a in (1 1 7) do !str%%a!
pause
exit/b


2007-3-13 05:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 12 楼』:  

末试过..先谢过.lxmxn热心帮忙!!!!

2007-3-13 07:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 13 楼』:  

试过了...应该可以了
谢谢lxmxn热心帮忙!!!!

2007-3-13 07:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jackyggt
初级用户





积分 76
发帖 38
注册 2007-3-13
状态 离线
『第 14 楼』:  

学习哈

2007-3-13 07:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zch1366
中级用户





积分 326
发帖 148
注册 2005-12-16
状态 离线
『第 15 楼』:  

在win xp可以运行批处理文件
在DOS下缺少文件..不能运行...
还是要麻烦lxmxn热心帮忙!!!!

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


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



论坛跳转: