标题: [文件操作] [已解决]批处理怎样全盘搜索文件2并复制文件1 到文件2所在文件夹? [打印本页]
作者: 穿蓝裤头的猪 时间: 2011-8-1 22:02 标题: [已解决]批处理怎样全盘搜索文件2并复制文件1 到文件2所在文件夹?
本帖最后由 穿蓝裤头的猪 于 2011-8-3 05:09 编辑
- SetLocal EnableDelayedExpansion
- for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
- set var=%%i
- set drive=!var:~-2!
- fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir/s/a-d/b !drive!\2.txt 2^>nul') do copy /y "1.txt" "%%~dpa")
复制代码
上面的代码不知道哪里出问题了 ,只能搜索当前盘符.
作者: cjiabing 时间: 2011-8-2 07:43
批处理全盘搜索指定文件获取其完整路径 http://www.bathome.net/viewthread.php?tid=3465
作者: 穿蓝裤头的猪 时间: 2011-8-2 10:48
回复 2# cjiabing
这个最简单的还凑合能看懂复杂了我就看不懂了 因为我很菜 能给个简单点的答案吗?谢谢
作者: cjiabing 时间: 2011-8-2 12:02
回复 3# 穿蓝裤头的猪
哦,好吧,那我教教你:
首先,你先找到一段可以进行全盘搜索的代码,——不要你上面那段,还有比这个简单的,从我提供的链接里找。
其次,你再学习学习copy这个命令。——在cmd窗口输入 copy/? 得到帮助信息。
做到以上两点不难,学会了就可以解决你的问题了。
作者: tmplinshi 时间: 2011-8-2 12:31
测试了楼主的代码,没有问题。
作者: 穿蓝裤头的猪 时间: 2011-8-2 20:06
回复 4# cjiabing
谢谢你,我再研究看看,我一般都是在注册表例直接读取路径的很方便,可恶的是有的软件在注册表找不到路径我就想到这个方法了,我现在就去研究下 .
作者: 穿蓝裤头的猪 时间: 2011-8-2 20:09
回复 5# tmplinshi
这个应该和系统没关系吧,我是W7 系统,比如说你把这个P放在C 盘运行,要搜索的文件放到D盘就搜索不到了,要搜索的文件放到和P一个盘就没问题.
作者: tmplinshi 时间: 2011-8-2 20:17
回复 7# 穿蓝裤头的猪
运行下面的代码,然后把结果贴上来:- @echo off
- SetLocal EnableDelayedExpansion
- for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
- set var=%%i
- set drive=!var:~-2!
- fsutil fsinfo drivetype !drive!|find "固定">nul && (
- echo !drive!
- )
- )
- pause
复制代码
作者: 穿蓝裤头的猪 时间: 2011-8-2 22:23
回复 8# tmplinshi
老是提示文件过大 害我把图片截了好几次, 这个我在哪个盘运行都是显示C盘
作者: tmplinshi 时间: 2011-8-2 22:36
本帖最后由 tmplinshi 于 2011-8-2 22:46 编辑
再贴下 fsutil fsinfo drives 的结果。(贴文字就可以了)
作者: Batcher 时间: 2011-8-2 22:37
回复 9# 穿蓝裤头的猪
尽量以文字(而不是图片)的方式贴出来
Q: 怎样把CMD窗口里的结果复制出来?
A: 右键单击CMD窗口的标题栏→"属性"→"选项"→勾选"快速编辑模式"→然后在CMD窗口用鼠标左键选中想要拷贝的内容→在选中的内容上单击鼠标右键→粘贴到文本文件中即可
作者: 穿蓝裤头的猪 时间: 2011-8-3 00:44
回复 10# tmplinshi
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
H:\Users\Administrator>fsutil fsinfo drives
驱动器: C:\ D:\ E:\ F:\ G:\ H:\
H:\Users\Administrator>
这样所有的盘符都显示了。
作者: cjiabing 时间: 2011-8-3 00:58
本帖最后由 cjiabing 于 2011-8-3 00:59 编辑
- @echo off
- FOR %%a IN (C: D: E: F: G: H:) DO if exist %%a cd /d %%a && for /r %%i in (2.txt) do if exist "%%~i" copy /y "1.txt" "%%~dpi"
- pause
复制代码
作者: 穿蓝裤头的猪 时间: 2011-8-3 01:51
回复 13# cjiabing
还是不行啊提示找不到文件。
作者: cjiabing 时间: 2011-8-3 02:43
回复 14# 穿蓝裤头的猪
你一句话就说找不到,我都不知道你想怎么样!~
作者: cjiabing 时间: 2011-8-3 02:50
本帖最后由 tmplinshi 于 2011-8-3 12:02 编辑
修正了一下,并亲自帮你做了下试验,正在搜索……- @echo off
- set var=%~dp0
- FOR %%a IN (C: D: E: F: G: H:) DO if exist %%a cd /d %%a && for /r %%i in (变形金刚3DVDscr中字.rmvb) do if exist "%%~i" echo "%%~i"© /y "%var%变形金刚3DVDscr中字_字幕.txt" "%%~dpi"||echo Failure
- pause
复制代码
作者: cjiabing 时间: 2011-8-3 02:51
成功!~
至于你信不信,反正我是信了!~
作者: 穿蓝裤头的猪 时间: 2011-8-3 05:08
回复 17# cjiabing
终于成功了 哎非常感谢
作者: 穿蓝裤头的猪 时间: 2011-8-3 05:17
本帖最后由 穿蓝裤头的猪 于 2011-8-3 05:55 编辑
回复 17# cjiabing
这个还是有点问题 ,不知道怎么了这个P放到桌面上运行就不管用了放在别的文件夹运行就没问题
C:\Documents\Desktop
这个是我桌面的地址,系统安装在H盘。
真怪了 我什么也没改 在桌面上运行又好了
刚才放在系统隐藏的文件夹下运行都没问题,在普通的文件夹下不管用了又,一会好一会坏 算了我放弃了
把批处理和文件1放在文件夹A运行能复制1到文件夹B(文件2已经放在文件夹B)
把批处理和文件1放在文件夹B运行不能复制1到文件夹A (文件2已经放在文件夹A)
作者: cjiabing 时间: 2011-8-3 09:54
回复 19# 穿蓝裤头的猪
晕,有可能不支持尤盘,有必要的话你还是换一个全盘搜索代码吧,提供的链接里有。我没用过你提供的命令。
作者: tmplinshi 时间: 2011-8-3 12:03
本帖最后由 tmplinshi 于 2011-8-3 12:18 编辑
@echo off
set var=%~dp0
FOR %%a IN (C: D: E: F: G: H DO if exist %%a cd /d %%a && for /r %%i in (变形金刚3DVDscr中字.rmvb) do if exist "%%~i" echo "%%~i"© /y "%var%变形金刚3DVDscr中字_字幕.txt" "%%~dpi"||echo Failure
pausecjiabing 发表于 2011-8-3 02:50
红色的这句会出错 —— 如果当前目录为盘符的子目录,cd /d 盘符: 不会切换到盘符目录。例:
C:\Documents and Settings\Administrator>cd /d c:
C:\Documents and Settings\Administrator> |
应该加一个斜线 —— cd /d 盘符:\
=======================
for /r %%i in (变形金刚3DVDscr中字.rmvb) do if exist "%%~i" echo "%%~i"
建议改为:- for /r %%i in (变形金刚3DVDscr中字.rmvb?) do if /i "%%~xi" == ".rmvb" echo "%%i"
复制代码
作者: cjiabing 时间: 2011-8-3 12:15
回复 21# tmplinshi
呵呵,谢谢!~形成习惯了,有些地方有斜杠就会发生错误,以为这里也一样。想把cd改成pushd,不懂是否可以?
作者: Hello123World 时间: 2011-8-3 14:22
原话已被无限的篡改了,铁道部发言人表示压力很大,都有人传成:“不管你们信不信我反正……”
其实原话是:“至于你们信不信,我反正是信的。”——你们怎么能说人话呢?你们得说官话啊。
作者: 穿蓝裤头的猪 时间: 2011-8-3 20:26
谢谢楼上的解答非常感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |