|
warmoon
初级用户
积分 40
发帖 13
注册 2006-3-11 来自 浙江温州曾在宁波
状态 离线
|
『楼 主』:
请问细节
在批处理文件中有这么一段用于整盘同类文件的备份。
md e:\bb
dir /b /s f:\*.txt >e:\a.txt
for /f %%i in (e:\a.txt) do copy /y %%i e:\bb
最后的命令把所有F盘的txt文件都烤到了e:\bb,但如果"F:\.....\*.txt"的路径中含有空格键,那么路径就会在空格处断掉,导致该txt文件不能复制,而进入下一个文件的复制。
不知哪位大侠能教教鄙人是什么原因,如何改进。洗耳恭听!
|
|
2006-3-11 23:27 |
|
|
JonePeng
金牌会员
D◎$ Fαп
积分 4562
发帖 1883
注册 2004-1-19 来自 广东广州
状态 离线
|
『第
2 楼』:
带空格的文件名是长文件名的问题。这类问题已经讨论过多次了,用双引号括住路径名就迎刃而解了:
for /f %%i in (e:\a.txt) do copy /y "%%i" e:\bb
|
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
|
|
2006-3-12 00:24 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
3 楼』:
LZ真BT啊,是不是不用for就不算是真正的批处理?
很简单的一件事,居然弄得这复杂。
md e:\bb
copy f:\*.txt e:\bb\*.txt
copy,xcopy,这两个怎么也比for好用高效吧。
|
|
2006-3-12 01:30 |
|
|
0401
中级用户
带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
4 楼』:
to 楼上:
LZ目的是拷贝F盘的所有txt文件。注意“/s”参数。
to LZ:
像2楼说的那样。但别忘记加上“delims=”。
for /f “delims=” %%i in (e:\a.txt) do copy /y "%%i" e:\bb
|
|
2006-3-12 15:24 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
5 楼』:
to 楼上
请注意我特意有提到xcopy命令。
|
|
2006-3-12 18:49 |
|
|
0401
中级用户
带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
6 楼』:
to 楼上:
不好意思,有注意到的,不过那时没去验证。所以我刚才特意查过xcopy的帮助,虽然能“把所有F盘的txt文件都拷到了e:\bb”,但同时复制时会创建原有的目录结构,显然楼主不是想表达这个意思。
不过仍谢谢你的提醒。
|
|
2006-3-12 21:37 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
7 楼』:
呵呵,这也正好是用xcopy的原因,如果复制的不同目录下的文件有重名的怎么办?
而且此例中的批处理不能处理 要复制的文件中有隐藏,系统属性的文件 的情况。
|
|
2006-3-12 22:40 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
8 楼』:
这种讨论有点儿形而上学了,其实楼主问的问题很简单,如果处理文件名中带空格的文件的拷贝。Jone的答复再加上0401的补充,已经很完美的解决了问题。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-3-13 00:23 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
9 楼』:
形而上学:形而上学是与辩证法相对立的世界观和方法论。其特点是用孤立的、片面的、静止的观点去看世界。
|
|
2006-3-13 02:45 |
|
|
warmoon
初级用户
积分 40
发帖 13
注册 2006-3-11 来自 浙江温州曾在宁波
状态 离线
|
『第
10 楼』:
好感激大家顶贴!鼓掌鼓掌~~~啪啦啪啦啪啦~~~
可是问题还在:
md e:\bb
dir /b /s f:\*.txt >e:\a.txt
for /f “delims=” %%i in (e:\a.txt) do copy /y "%%i" e:\bb
CMD说:“此时不应有”。”
这个For 语句还有待考究呢。
|
|
2006-3-15 21:48 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
11 楼』:
CMD说:“此时不应有”。”
很显然是for出了毛病,此时不应有 ”
很显然毛病是出在 for /f 后面
一般来说"是不会出问题的,既然提示它出了问题我想很可能是你自己的问题。在for/f后面要么是接",要么是接%,接了别的字符才会提示错误,所以很可能是你的"输入有问题。
你重新打开记事本,在半角,英文输入法下重新输入一遍看看,如果不行切换到全角看看。
我认为这个for语句没有什么好研究的,值得研究的是某些人。。。
|
|
2006-3-16 10:34 |
|
|
warmoon
初级用户
积分 40
发帖 13
注册 2006-3-11 来自 浙江温州曾在宁波
状态 离线
|
『第
12 楼』:
经某人考究终于发现问题之所在,现报如下:
问题: 俺在中文状态下输了那前两个“”引号!导致DOS不买帐。
等级: 低级
综合: 新手常犯之低级糊涂!
呈辞: 望大侠莫怪!
在此谢罪!
非常感谢大家的帮助,小生就此拜谢!
|
|
2006-3-16 19:25 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by 3742668 at 2006-3-13 02:45:
形而上学:形而上学是与辩证法相对立的世界观和方法论。其特点是用孤立的、片面的、静止的观点去看世界。 |
|
这种引用解释的行为是典型的形而上学的行为。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2006-3-17 08:57 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
14 楼』:
是~~~~~~~么?
不要不懂装懂哦~!
|
|
2006-3-17 13:06 |
|
|
bagpipe
银牌会员
DOS联盟捡破烂的
积分 1144
发帖 425
注册 2005-10-20 来自 北京
状态 离线
|
『第
15 楼』:
其实LZ的问题是这样的,说如果a.txt文件的路径带有空格怎么办,那咱们就这么办for /f “usebackq” %%i in ("e:\a.txt") do copy /y "%%i" e:\bb,其实没有必要用DELIMS的
|
|
2006-3-17 13:24 |
|