无忧启动论坛

标题: 请高手帮忙写两个批处理bat文件! [打印本页]

作者: sundh    时间: 2010-1-25 14:24
标题: 请高手帮忙写两个批处理bat文件!
我对dos不熟悉,现在想在PE下达到如下目的:

1、通过运行一个批处理bat文件,找到u盘盘符,并进入u盘根目录。

2、通过运行一个批处理bat文件,在所有驱动器根目录中找到某个指定的文件夹(如pe文件夹),并进入该文件夹。

请高手帮忙两个问题各写一个批处理bat文件!谢谢!
作者: sundh    时间: 2010-1-25 14:53
这个问题发到这儿如何不符合版规的话,请版主删除,我在dos区发了。
作者: NicTense    时间: 2010-1-25 14:55
1、通过运行一个批处理bat文件,找到u盘盘符,并进入u盘根目录。
据我所知,好像cmd的内部命令很难判断哪个是u盘,所以最好是在u盘上放一个特殊的文件或者文件夹
比如 \flag\iamhere.flg
那问题就简单了


@echo off
for %%a in (z y x w v u t s r q p o n m l k j i h g f e d c) do if exist %%a:/flag/iamhere.flg cd /d %%a\ && goto next
:next
....


2、通过运行一个批处理bat文件,在所有驱动器根目录中找到某个指定的文件夹(如pe文件夹),并进入该文件夹。


for %%a in (z y x w v u t s r q p o n m l k j i h g f e d c) do if exist %%a:\pe\nul cd /d %%a:\pe && goto next
:next
...

作者: zhaohj    时间: 2010-1-25 15:28
PE下并不保证能识别U盘,也并不保证能分配盘符。
@echo off
    set "var1=fsutil fsinfo drives"
    set "var2=fsutil fsinfo drivetype"
    for /f "delims=驱动器:\ " %%a in ('%var1%^|more') do (
    for /f "delims=:" %%i in ('%var2% %%a: ^| find/i "可移动驱动器"') do (
    call set "pan=%%pan%%%%i"
    ))
    set "u=%pan:~-1%"
    echo.&echo 你的U盘盘符是 %u% 盘
    pause>nul
作者: sundh    时间: 2010-1-25 15:55
谢谢两位指点,学习了。
作者: 快雪时晴    时间: 2010-1-27 20:56
获取各个分区的大小,小于16G,就假定那是U盘等移动存储。
作者: NicTense    时间: 2010-1-28 02:19
标题: 回复 #6 快雪时晴 的帖子
这个方法是不行滴

首先光盘就肯定是少于16G的
其次像偶就经常在硬盘的最后放1、2个小于16G的分区(备份,fat16等用途)
再次,u盘也不一定就小鱼16G




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3