[grub4dos] 全新的fat命令 [2010-06-24]


  抽空重新改写了GRUB4DOS外命令FAT,完全重写代码。 直接使用了开源的FAT File System Module

  上次写的FAT命令是为了学习FAT文件系统的原理,花去了好多时间。本来想继续在原来的基础上改进添加一些其它功能,想想还是算了,我自己写代码很乱并不比别人的好,还不如直接利用现有的代码。

所以这次就利用了上面的开源FAT模块,只需要编写磁盘读写函数给这个模块,就可以直接使用了。 

  而且这个模块支持许多功能,包括,文件/目录,读写、删除、改名,还可以格式化磁盘等。唯一的代价是因为功能多了所以编译出来的程序文件当然会比较大,目前的版本大小是20KB,比以前的版本多了10KB,当然了可以用GZ压缩一下就只有7KB左右了。

 

废话不多说了,直接先上个图。截图使用到的功能 复制文件/改名/删除


FAT帮助信息。


 

2010-06-24
  1. 添加获取当前时间代码.
  2. 修正dir显示时间日期错误.
  3. copy时按原文件复制禁用GRUB4DOS的自动解压功能 

    2010-06-11 正式版
  4. 添加mkfs命令用于创建一个FAT分区(相当于format)

            命令格式
    
            <span style="color: #f00">FAT mkfs [/A:UNIT-SIZE] DRIVE</span>
    
            注:<span style="color: #f00">DRIVE</span>必须是一个GRUB4DOS可用的磁盘号,比如(fd0) (hd0,1)。不要直接使用(hd0),否则可能会把整个磁盘都格成FAT格式。
    
            这个命令建议用于虚拟内存盘,除非必要,尽量不要用于真实硬盘。
    
  5. copy命令添加一个/o参数,复制时覆盖已有文件。
  6. dir命令添加参数/a显示指定属性的目录或文件(和dos的dir命令一样).
  7. 由于带有完整功能的版本文件比较大,所以发布时同时带了一个mini版本,只带copy mkfile 和del三个命令。

    2010-06-06 测试版

  8. 添加dir命令.

                ![](http://chenall.net/wp-content/uploads/2010/06/E3609D9E30AF342B74F3887103E94AF8C35D6956.jpg)
    
  9. 修改create_file命令参数为mkfile.

注:接下来就是主要进行测试了,最近不会有更新的版本。

<div><font color="#ff00ff">2010-06-05 预览版a3</font></div>
  1. 添加帮助信息,没有加任何参数,或参数有误时显示帮助信息。
  2. 修改0604版fat info显示信息。
  3. 添加create_file子命令(已经改成mkfile),可以创建一个指定大小的空白文件(只进行空间分配)

    2010-06-04 预览版a2
  4. copy命令改进,允许不指定目标文件名,自动使用源文件名。

     

    另外,新版版在复制前增加了检测,如果磁盘空间不够就不复制。
  5. 为了调试方便,增加了一个info命令用于查看当前可用空间(正式版可能会删除这个命令)

            <font color="#ff00ff">![](http://chenall.net/wp-content/uploads/2010/06/0AB87A4EFF706CD4EC4C6C4FD56C8A9785129047.jpg)</font>
    
2010-06-03 预览版
  1. 修改了几个可能导致出错的代码。
  2. 精简FAT模块部份没有用到的函数。
2010-06-02 预览版
    目前可使用功能列表 :
  1. mkdir 创建一个目录 fat mkdir 目标目录  

           例子:fat mkdir (hd1,0)/abcd

    注:只能一级一级建立,不可以同时建立多级目录(以后也许会考虑改进)
  2. copy   复制文件  fat copy [/o] 来源 目标  

          例子: fat copy (hd0,0)/file.ext (hd1,0)/file.ext

    注:来源文件可以是任意GRUB4DOS可以访问的路径.

    目标文件必须是FAT分区,并且这个文件不存在(以后会考虑加一个参数,让它可以进行覆盖操作),新的版本已支持覆盖操作要加参数/o

    并且目标目录必须存在否则会提示错误(这个目前就不考虑改进了)。
  3. ren     文件或目录更名/移动 fat ren 旧名 新名   

     例子:

    修改当前ROOT分区下的abc.txt文件为abc.ini

    fat ren /abc.txt abc.ini

    移动文件,把abc.txt移到test目录下(test目录必须已经存在)

    fat ren /abc.txt /test/abc.txt 
  4. del    删除文件或目录(只能删除空目录同DOS)

    例子:

    删除一个文件

    fat del /abc.txt

    删除一个目录同删除文件一样,但要求这个目录是空目录,你必须先删除这个目录下的文件才能删除这个目录

    注意:不要删除根目录
  5. create_file 创建一个文件。

    创建一个1M大小的文件。

    FAT create_file size=1M (hd0,0)/1M.BIN

    创建一个文件,大小自动取前面的cat —length=0得到的文件大小值。

    FAT create_file size=* (hd0,0)/NEW.BIN
  6. dir 显示指定目录下面的文件列表。

    FAT DIR

    新的版本可以按属性来显示列表。

    d  目录

    s  系统属性

    r  只性属性

    h  隐藏属性

    -  表示“否”的前辍

    几个例子:

    FAT dir /a-d 不显示目录

    FAT dir /ad 只显示目录

    FAT dir /a-dsh 只显示带有系统和隐藏属性的文件。

     
  7. mkfs 创建一个FAT分区

    FAT mkfs [/A:UNIT-SIZE] [DRIVE]

    把指定的DRIVE格式化成FAT格式。如果不指定DRIVE则使用当前的root分区。

    UNIT-SIZE指定格式化时使用的族大小,具体请参考windows的format命令

    例子

    FAT mkfs  按默认参数格式化当前磁盘

    FAT mkfs /A:1024 或 FAT mkfs /A:1k  指定每个簇大小为1Kb

    FAT mkfs (fd0)

     

下载测试地址:http://grub4dos-chenall.googlecode.com/http://grub4dos.chenall.com/(自动跳转)

注:目前只是预览测试版的版本应该比较稳定了,请使用虚拟机测试。欢迎大家进行测试。有什么问题或建议,可以直接留言,也可以到时空或者无忧论坛相关贴子留言。 

    &nbsp;

&nbsp;</div>