中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 03:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一个对参数字符串处理的脚本 查看 1,012 回复 2
楼 主 求一个对参数字符串处理的脚本 发表于 2010-11-21 02:04 ·  越南 胡志明市 Viettel电信
新手上路
积分 9
发帖 5
注册 2010-07-14 17:11
16年会员
UID 170602
性别 男
状态 离线
a.bat要求如下:
1.定义0-9代表硬盘中的10个指定文件
2.使用a.bat 0123 取参数中指定的文件放到同一个目录(0123是一个参数,脚本里需要拆分)
3.脚本要判断参数只能是包含0-9的字符串,如果有其他字符则返回错误
4.要对参数排重,例如a.bat 1122 那只取1和2代表的文件


在此感谢了!!
2 发表于 2010-11-21 11:40 ·  中国 广东 珠海 联通
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线

@echo off
:: 假设批处理所在目录 有9个文件 0.txt 1.txt ...... 9.txt
:: 按参数移动到 D:\DATA 目录

CD /D "%~DP0"

if "%1" == "" Echo 没有参数!脚本退出!&pause >NUL &exit
echo %1| findstr "" && (
Echo 参数错误!不应该有数字以外的字符。
pause >nul & exit
)

set "arg=%1"
:CMP
set "num=%arg:~0,1%"
move "%num%.txt" D:\DATA 2>nul && echo 移动 %num%.txt 到 D:\DATA

call set "arg=%%arg:%num%=%%"
If not "%arg%" == "" goto CMP
echo 任务完成!
pause > nul
3 发表于 2010-11-21 14:42 ·  越南 胡志明市 Viettel电信
新手上路
积分 9
发帖 5
注册 2010-07-14 17:11
16年会员
UID 170602
性别 男
状态 离线
验证了下,功能可以实现。。。强大。。谢谢
论坛跳转: