标题: [文件操作] 批处理全盘搜索指定文件 [打印本页]
作者: bluewing009 时间: 2009-11-30 17:46 标题: 批处理全盘搜索指定文件
原创, 请管理员移至原创区(目前本人权限不足)
网吧里去玩war3时经常没有地图,但是各个网吧war3的路径不同,带来很大麻烦
现用一下代码可实现。
代码如下:
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
- call set a=%%i
- for /f "delims=" %%j in ('dir /a /b /s !a:~-2!\War3.exe') do (
- echo %%j
- copy "%~dp0\冰峰王座\真三国无双3.9d_AI.w3x" "%%~dpj\maps\"
- copy "%~dp0\冰峰王座\DotA Allstars AI CN.w3x" "%%~dpj\maps\"
-
- )
- )
- echo 完成
- pause
复制代码
代码意义:本文只是个例子, 如果将war3.exe和对应的copy命令修改,即可达到自己需要的目的。
同时 请看第3行,这个一些用c:d:e:f甚至是26个字母全写上的.....汗~~)的人一些启示
PS:我尽量发一些具有普遍意义的代码,需要请对应修改。什么事情都做好,你永远不能进步。DIY吧~~~
[ 本帖最后由 bluewing009 于 2009-12-1 10:26 编辑 ]
作者: Batcher 时间: 2009-11-30 22:12
相关讨论:批处理全盘搜索指定文件获取其完整路径
http://bbs.bathome.net/thread-3465-1-1.html
作者: bluewing009 时间: 2009-12-1 10:23 标题: 回复 2楼 的帖子
很明显 不如用for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
这个更好,你用cde 还要写26个字母哦
作者: Batcher 时间: 2009-12-1 11:11 标题: 回复 3楼 的帖子
1、fsutil和wmic等方法都挺好的,但是如果能够注明对操作系统的要求、对系统用户权限的要求,那就更好了。
2、关于代码的长短和效率之间的取舍,更多讨论见:批处理代码是越短越好吗?
http://bbs.bathome.net/thread-4026-1-1.html
作者: bluewing009 时间: 2009-12-1 12:39 标题: 回复 4楼 的帖子
关于代码简化的问题,
相对来说如果是教学讨论,当然用人人都能理解的东东。
但是对于成品,如何用最简短最高效完成。这时,for套上3层都是可以理解的。
对于我这个贴子,因为不同电脑, 驱动器盘符不同,所以我放弃的(cdef)的写法,当然 用的东西相对多了一小块。面向跟广泛。 所以根本不存在一些特殊要求。
有些bat要求用户放在特定的地方 或者调整系统才行, 我认为这样不是很好。
作为 编写者,我们应考虑更广泛的面 而不是去要求用户干什么。
反过来讨论这个帖子,我已经说明了 只要把 exe 和 copy 改掉即可,用了缩进 方便(最后的那个括号就直接写了)直接修改成自己想要的。
作者: zqz0012005 时间: 2009-12-1 13:02
请继续无视4楼“对操作系统的要求、对系统用户权限的要求”
fsutil
有些bat要求用户放在特定的地方,也是为了适应用户的需求。
要知道多数bat是为了解决具体问题而存在。
那些“甚至是26个字母全写上”的,有不少人是早就知道fsutil、mountvol、wmic等命令的,他们为什么还要那么写?我想可以给楼主一些启示。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |