无忧启动论坛

标题: 将一串字符写入内存,然后按空格为分隔符逐一读出处理用内置函数怎么实现? [打印本页]

作者: zbkh    时间: 2013-6-1 17:40
标题: 将一串字符写入内存,然后按空格为分隔符逐一读出处理用内置函数怎么实现?
将一串字符写入内存,然后按空格为分隔符逐一读出处理用内置函数怎么实现?

比如说:

ls (hd0,0)/windows/system32 | set a=

上面这样写,肯定无法完整保存system32里面的全部文件、文件夹名称,因为变量不能超过512字节,想通过调用a变量来操作其他的就不行了;

我想通过将ls (hd0,0)/windows/system32 >  (md)0x20000+0x1000 这样写入一段内存,然后分别读出文件、文件夹的名称来操作,但是不知道怎么样实现?

求chenall指教!!!
作者: chenall    时间: 2013-6-1 19:18
用手机,不方便。你可以参考一下我写的那个文件列表模块。
作者: zbkh    时间: 2013-6-1 19:39
chenall 发表于 2013-6-1 19:18
用手机,不方便。你可以参考一下我写的那个文件列表模块。

恩,好的!谢谢chenall
作者: zbkh    时间: 2013-6-1 22:54
chenall 发表于 2013-6-1 19:18
用手机,不方便。你可以参考一下我写的那个文件列表模块。

chenall 你好!

下面这个命令行我验证了ls (hd0,1)/windows/system32/ | call :echo1 这条语句是把system32所有的文件、文件夹名称作为参数传递出去了的,

!BAT
set /a n=0
ls (hd0,1)/windows/system32/ | call :echo1
exit

:echo1
if "%1"=="" exit
echo -e \n
echo %n% %1
set /a n=%n%+1
shift
goto :echo1

但是这下面的命令行只是显示到255行,是不是title的菜单行在一个配置文件当中只能有255行??
!BAT
echo default 0\ntimeout 10\n > (md)0x20000+0x800
set /a n=0
ls (hd0,1)/windows/system32/ | call :echo1
configfile (md)0x20000+0x800
exit

:echo1
if "%1"=="" exit
echo -e title [%n%] %1\nclear\n >> (md)0x20000+0x800
set /a n=%n%+1
shift
goto :echo1


作者: sratlf    时间: 2013-6-1 23:26
zbkh 发表于 2013-6-1 22:54
chenall 你好!

下面这个命令行我验证了ls (hd0,1)/windows/system32/ | call :echo1 这条语句是把sys ...

title菜单项确实有数量限制  最高255  之后的会忽略掉
作者: zbkh    时间: 2013-6-2 22:24
sratlf 发表于 2013-6-1 23:26
title菜单项确实有数量限制  最高255  之后的会忽略掉

哦,谢谢sratlf




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