![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 22:15 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎样从外部获得多个变量来支持多文件?已解决 |
| 可打印版本 2,846 / 14 |
| 第1楼 echo | 发表于 2006-12-12 01:42 |
| 初级用户 发帖 69 积分 148 | |
|
怎样从外部获得多个变量来支持多文件?已解决 @echo off
if not exist "f:\备份" md "f:\备份" :start if not "%~1"=="" ( move "%~1" f:\备份\ shift goto :start) pause>nul 引用2楼兄台的代码,测试过,支持拖放操作,已经很好地解决了我前面提出的问题:(目前只能支持单文件,而且文件名不能有空格,不知道如何改进才能支持多文件(多于9个),而且不受空格的影响,我把%1改成"%1"提示说命令语法不支持。),但测试后发现不支持文件夹,不知道该怎么样完善下? 可能我前面没说清楚,不好意思,其实我是想把这个P放到SENDTO里头来用,或者直接将多个文件拖放到这个P上来操作 大虾门帮忙看看。。。:lol: [ Last edited by echo on 2006-12-12 at 04:50 PM ] |
|
| 第2楼 youxi01 | 发表于 2006-12-12 05:48 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
试试以下的代码,支持多个文件,支持拖放,但是对于具有重复名的文件,在移动过程中进行覆盖且不提示!!!有需要的话自己改进!!!
|
|
| 第3楼 NaturalJ0 | 发表于 2006-12-12 06:05 |
| 银牌会员 发帖 533 积分 1,181 | |
|
输入时你加上引号,传进去后去掉再用,如果要超过 9 个,应该要用 shift 。
|
|
| 第4楼 youxi01 | 发表于 2006-12-12 06:29 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
TO :楼上,楼主出现的问题主要不是引号的问题,而是空格的问题,应该!
|
|
| 第5楼 3742668 | 发表于 2006-12-12 10:29 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
不明白为什么一定要call调用? 注意参数包含空格的要加引号。 |
|
| 第6楼 youxi01 | 发表于 2006-12-12 10:57 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
斑竹的代码真是极尽简洁之能啊!羡慕!!!
|
|
| 第7楼 sea2moon | 发表于 2006-12-12 11:11 |
| 初级用户 发帖 23 积分 47 | |
|
请问
@echo off md D:\备份 2>nul for %%i in (%*) do move ………… 中的, %* 相不相当于 *.* ? |
|
| 第8楼 namejm | 发表于 2006-12-12 11:15 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
%* 表示 call 语句所引用的所有参数,和 *.* 完全不一样。
|
|
| 第9楼 3742668 | 发表于 2006-12-12 11:47 |
| 荣誉版主 发帖 718 积分 2,013 | |
Originally posted by youxi01 at 2006-12-12 10:57: 要想代码好,if尽量少;要想代码壮,引号括号两边放。 ![]() 你也不用妄自菲薄,你的代码也是本论坛中比较有创造性的之一。 |
|
| 第10楼 echo | 发表于 2006-12-12 23:35 |
| 初级用户 发帖 69 积分 148 | |
|
谢谢各位,学习了,我上面可能没说清楚
我是想它支持拖放操作,即将多个文件直接拖到这个P上进行处理,或者把这个P放到SENDTO里,这样比较省心! 上面没说清楚,不好意思,谢谢大家 [ Last edited by echo on 2006-12-12 at 11:13 AM ] |
|
| 第11楼 echo | 发表于 2006-12-12 23:40 |
| 初级用户 发帖 69 积分 148 | |
Originally posted by youxi01 at 2006-12-11 04:48 PM: |
|
| 第12楼 kcdsw | 发表于 2006-12-13 03:23 |
| 中级用户 发帖 179 积分 404 | |
|
用了至少半年了,你自己改改.
还没见到不支持的文件或者文件夹 参数不限!(超过9个文件 or 文件夹 or 文件+文件夹) 我把这个批处理做了个快捷方式(可以最小化运行) 一个放在桌面 一个放在sendto 相当的节省时间! [ Last edited by kcdsw on 2006-12-13 at 03:43 AM ] |
|
| 第13楼 echo | 发表于 2006-12-13 04:34 |
| 初级用户 发帖 69 积分 148 | |
|
先顶再看,看起来正合我意,谢谢
我顶! 确实不错,今天不能给你评分了,限制了,明天吧,以后有好东西多拿出来共享哦! [ Last edited by echo on 2006-12-12 at 03:38 PM ] |
|
| 第14楼 kcdsw | 发表于 2006-12-13 04:42 |
| 中级用户 发帖 179 积分 404 | |
|
呵呵 我这个程序是每天工作都用的
目的就是为了把要处理的文件放到 以当日日期为名的文件夹中 以保证服务器能从这里取到文件.(因为,如果都放在一个目录里,容易出现重名,或者文件过多,服务器响应慢) 然后需要支持所有可能性(文件已打开除外) 1.右键sendto 2.拖放 3.方便查看 4.支持文件夹 5.移除原文件 另外 为了方便我操作.我在其快捷方式中设置了快捷键.一按立刻就打开了当天的文件夹. 我觉得完全是利用了系统的很多其他功能 才使得这个批处理用起来感觉是那么那么的好 比如:sendto , 快捷键 , 最小化运行 等等等等 所以我觉得这个东西其实很适合你拿回去做备份 这个日期为名的文件夹形式可以保留一下 只需要改动目标文件夹. [ Last edited by kcdsw on 2006-12-13 at 04:45 AM ] |
|
| 第15楼 echo | 发表于 2006-12-13 04:48 |
| 初级用户 发帖 69 积分 148 | |
Originally posted by kcdsw at 2006-12-12 03:42 PM: 刚刚测试过,真是太爽了,哈哈,我就不说了。。。 看来大家都各自藏着些好宝贝哦! 学习、受教、受用了,谢谢!:P [ Last edited by echo on 2006-12-12 at 03:53 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |