yjqd 发表于 2016-10-25 10:30:04

如何写批处理把每个分区root一遍

比如磁盘中有4个分区,如何写一个批处理,批处理中的root命令把每个分区root一遍

不点 发表于 2016-10-25 11:15:14

试试:

find /.../my_file my_bat_file



find my_bat_file

当 my_bat_file 开始执行时,它就是以该分区为当前 root 分区的。

不点 发表于 2016-10-25 10:45:35

你 find 时,find 就要经过所有的分区(其实是逐个枚举)。当 find “路过” 某个分区时,该分区就已经被 root 一次了(不然的话,怎可能知道该分区有没有要找的文件呢?因此,一定是先把该分区设为当前 root 分区,然后再判断文件是否存在)。路过下一个分区时,也是类似。



yjqd 发表于 2016-10-25 11:07:11

不点 发表于 2016-10-25 10:45
你 find 时,find 就要经过所有的分区(其实是逐个枚举)。当 find “路过” 某个分区时,该分区就已经被 r ...

谢谢回复

我的意思没表达清楚,抱歉!

原意是自动root一个分区后对该分区进行操作(当然不是手动操作,操作命令在批处理中),操作命令执行完后又自动root一下分区,又对对该分区进行操作,这样依次进行下去
--------------------------------------------------------------------------------------------
自动root最后一个分区倒是好办:root endpart(注意仅对磁盘有效)

yjqd 发表于 2016-10-25 11:25:29

不点 发表于 2016-10-25 11:15
试试:

find /.../my_file my_bat_file


谢谢回复

我去试一试

不知 发表于 2016-10-25 12:59:30

本帖最后由 不知 于 2016-10-25 13:04 编辑

根据不点大师的提示,回去试了一下。发现很有意思。

创建一个bat文件(假设名为command)并放在根目录,内容为
!BAT
root %1
.........(自己的其他命令)

在G4D菜单的调用菜单为

title run my bat
find /command | set path=
find command%path%/command

yjqd 发表于 2016-10-25 14:52:53

不点 发表于 2016-10-25 11:15
试试:

find /.../my_file my_bat_file


我在每个分区下放入批处理文件t,t的内容如下:
!BAT
echo %@root%

启动grub4dos,执行find t
结果如下:
(hd0,0)    这应该是find的结果 (下同)
(hd0,0)    这应该是 t 执行的结果路径确实为t所在的分区 (下同)
(hd0,2)
(hd0,2)
(hd0,4)
(hd0,4)
(hd0,5)
(hd0,5)




yjqd 发表于 2016-10-25 14:59:27

不知 发表于 2016-10-25 12:59
根据不点大师的提示,回去试了一下。发现很有意思。

创建一个bat文件(假设名为command)并放在根目录, ...

谢谢回复

在我的硬盘fat32分区中,执行echo !BAT > (hd0,2)/1.inf 后,cat命令查看1.inf,什么内容也没有

执行echo !BAT > (hd0,2)/1.txt后,cat命令查看1.BAT,里面有!BAT

怎么我的echo不能写入inf文件

不知 发表于 2016-10-25 16:07:38

yjqd 发表于 2016-10-25 14:59
谢谢回复

在我的硬盘fat32分区中,执行echo !BAT > (hd0,2)/1.inf 后,cat命令查看1.inf,什么内容也 ...

我那图片是因为我懒得制作bat文件,使用了winvblk中的winvblk.inf,把我的想法用文件重定向写入,你要写入文件必须存在那个文件。按我帖子的文字说明即可,图片为演示find命令。
页: [1]
查看完整版本: 如何写批处理把每个分区root一遍