无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 60861|回复: 189
打印 上一主题 下一主题

Native子系统的 Cmd (Native Cmd) M2正式发布 -- 2011-07-22 (reg.exe,xcopy.exe)

  [复制链接]
跳转到指定楼层
1#
发表于 2011-5-23 23:15:51 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
Google项目空间 http://code.google.com/p/nativecmd/

2011-7-22 修正了ncmd调用外部程序时main函数的argc和argv丢失的问题..现在应该能正常调用外部程序了,另外增加reg.exe和xcopy.exe命令
由于reactos的代码中没有实现reg query命令..所以这个外部程序也没有实现..
欢迎测试反馈.
谢谢

2011-7-19 代码做了较大调整,可以编译win32子系统的版本了..喜欢diy的朋友有福了
主要的变化是调整了代码,把native子系统的代码全部移出到kernel.dll使得ncmd.exe可以在win32子系统编译和调试
增加了输入重定向功能
kernel.dll中已经添加注册表操作所需的函数.reg命令呼之欲出.
代码调整较多.可能会带来新的问题.希望大家多多测试反馈.谢谢
下一步准备增加大家关系的wim挂载,cab解压,7z解压,wim解压等功能.有兴趣的朋友欢迎加入开发.

2011-5-30 修正kernel.dll中CreateProcess函数工作不正常的问题,增加for命令的/F参数(待测试),增加type命令
for命令已经完整移植,等待大家测试

2011-5-25 根据大家的反馈修复一个退出后0xC0000135蓝屏的问题.
原因是kernel.dll的DllMain中初始化了Nls(为了代码页转化).退出后却不能删除这个对象(内核没提供相关函数).kernel32.dll也需要创建这个对象..于是就蓝屏了.
解决办法是我们用NtNls替换Nls.目前好像没有什么问题.这个代码页转换好像也不是太好使(输出中文是乱码).暂且先这样.希望以后可以完美实现中文处理.

2011-5-23 今天应大家要求正式发布Native Cmd的M1版本
这个命令行处理程序和windows的命令行语法兼容

目前已经完全实现的功能
1.输出重定向
2.运行批处理文件
3.环境变量
4.回显控制
5.通配符
6.输入重定向
7.管道符
8.Native程序调用
一、目前已经实现的命令
attrib
cd(chdir)
copy
date
del(delete,erase)
dir
dirs
echo
endlocal
exit
for
goto
help
if
label
md(mkdir)
move
path
pause
popd
prompt
pushd
rd(rmdir)
rem
ren(rename)
replace
set
setlocal
shift
time
type
ver
verify
vol
二、扩展的命令
delay
dirs
echos
echoerr
echoserr
free
memory
mklink
timer
三、外部命令
reg
xcopy

红色标注的命令表示未完全实现或者是部分功能不正常

暂时不支持非ascii字符(包括中文),命令行中会卡死,输出会乱码..批处理请选择ansi编码或者utf-8无bom



2011-5-23   NativeCmd.rar (138.46 KB, 下载次数: 548)
2011-5-25   NativeCmd.rar (138.46 KB, 下载次数: 403)
2011-5-30   NativeCmd.rar (140.7 KB, 下载次数: 357)
2011-7-19   NativeCmd.rar (154.27 KB, 下载次数: 366)
2011-7-22   NativeCmd.rar (169.79 KB, 下载次数: 1049)

[ 本帖最后由 2011足迹 于 2011-7-22 19:24 编辑 ]

评分

参与人数 1无忧币 +5 收起 理由
wuxin9712 + 5

查看全部评分

2#
 楼主| 发表于 2011-5-23 23:16:33 | 显示全部楼层
占楼备用....
回复

使用道具 举报

3#
 楼主| 发表于 2011-5-23 23:36:02 | 显示全部楼层
原帖由 chenall 于 2011-5-23 23:32 发表
报一个问题不知是个例还是?能否解决。

我在BootExecute中添加了两行
native.exe load native.cfg
ncmd.exe /c nautorun.bat
启动蓝屏
把上面的/c改成 /k
启动时正常,但是进入ncmd之后只要输入exit退 ...

很奇怪的问题...
蓝屏提示是应用程序初始化失败(dll未找到)..按说不应该在exit的时候出错..
回复

使用道具 举报

4#
 楼主| 发表于 2011-5-24 22:08:00 | 显示全部楼层
原帖由 chenall 于 2011-5-24 16:11 发表
我的测试情况是只要执行过NCMD.EXE程序,不管作了什么操作,肯定蓝屏。

注,使用MOUNT

调试了一下...
蓝屏的位置是在win32k.sys加载时或加载后...
ncmd退出时有个驱动退出了..不知道是不是这个原因...
回复

使用道具 举报

5#
 楼主| 发表于 2011-5-24 23:23:48 | 显示全部楼层
135蓝屏问题初步确定是kernel.dll的DllMain函数引起的..继续调试中...
回复

使用道具 举报

6#
 楼主| 发表于 2011-5-25 00:26:00 | 显示全部楼层
很纠结的问题...
nls初始化引起的后面135蓝屏...
不初始化nls所有涉及代码页转换的函数会出错...
回复

使用道具 举报

7#
 楼主| 发表于 2011-5-25 13:52:56 | 显示全部楼层
原帖由 haiou327 于 2011-5-25 12:50 发表 用sp_star从Native分离的外部Nmount不过还是期待足迹在Ncmd里能整合mount 增强Cd(Chenall整合的SCD) 7z
先实现原有内置命令再说吧
回复

使用道具 举报

8#
 楼主| 发表于 2011-5-26 16:12:05 | 显示全部楼层
原帖由 thttht 于 2011-5-26 16:07 发表 请教各位谁用过Native Cmd中的mklink命令啊?我这里不知道为什么命令行里提示建立成功,但实际无法访问啊?文件和目录都不成功!有用过并成功的吗?讲讲用法和经验好吗?谢谢!!!
mklink功能现在还不完善,只有ntfs的hard link好使
回复

使用道具 举报

9#
 楼主| 发表于 2011-5-26 19:16:22 | 显示全部楼层
原帖由 thttht 于 2011-5-26 16:57 发表 我现在ntfs的hard link的也没有成功!我是手动输入的命令如下:mklink c:\a.txt c:\a\a.txt   【c:\a\a.txt为原始文件】提示建立成功!也可以看到创建的c:\a.txt文件,但打开a.txt文件提示文件错误!
硬链应该加/h参数
回复

使用道具 举报

10#
 楼主| 发表于 2011-5-26 20:28:11 | 显示全部楼层
原帖由 thttht 于 2011-5-26 20:05 发表
谢谢 足迹和YY ,请问如何查看Native Cmd下各个命令的参数及作用啊?
MKlinK ?或 MKlinK help   可以吗?

nativecmd的帮助有help命令(查看所有命令和功能)?命令(查看所有命令),/?参数(命令的详细使用帮助)
回复

使用道具 举报

11#
 楼主| 发表于 2011-5-28 20:07:12 | 显示全部楼层
原帖由 2011kcyou 于 2011-5-28 16:10 发表
请教:出现蓝屏c000021a代码是什么意思?


0xC000021A
STATUS_SYSTEM_PROCESS_TERMINATED
{Fatal System Error} The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down.


[ 本帖最后由 2011足迹 于 2011-5-28 20:10 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2011-5-30 10:19:38 | 显示全部楼层
遇上一悲剧的问题。CreateProcess问题解决了,for /F调用命令的时候却出现冲突。。谁有空帮忙看看。type命令大家可以编译测试,for /F读取文件大家也可以测试一下
回复

使用道具 举报

13#
 楼主| 发表于 2011-6-1 22:45:12 | 显示全部楼层
原帖由 andos 于 2011-6-1 07:17 发表
PE3情况:
R28好像有些问题,同样用R25可以进桌面
但是R28就去到ncmd,似乎是有一些地方出错了,
应该是调用不到N7Z,因为dir没看到解压的文件,也就是没解压到吧

for %%i in (Z W V U T S R Q P O N M L  ...

最好提供详细的内容..
抽空看看
回复

使用道具 举报

14#
 楼主| 发表于 2011-6-7 23:51:37 | 显示全部楼层
原帖由 dengxiong 于 2011-6-6 10:24 发表







不知道什么时候能够支持UD区呀,很期待这个功能…………

还是希望有人能提供驱动级支持...直接读取效率太低...
回复

使用道具 举报

15#
 楼主| 发表于 2011-7-19 02:54:51 | 显示全部楼层
有新版本发布了...自己顶一下..
回复

使用道具 举报

16#
 楼主| 发表于 2011-7-20 15:33:53 | 显示全部楼层
reg和xcopy命令编译完成..但是却遇到了一个问题..开启新的程序时argc和argv参数错误..这个也就是为什么之前调用外部程序失败的原因..不知道有没有人能看看是怎么回事...一直没有找到问题所在..
回复

使用道具 举报

17#
 楼主| 发表于 2011-7-21 00:18:22 | 显示全部楼层
原帖由 sp_star 于 2011-7-20 19:43 发表
是不是像这样"aaa bbb"带空格的参数被识别为2个?

这个倒是不是..
是C语言中main函数中的两个参数..int main(int argc ,char *argv[])
调用程序时得到argc=0
在程序中使用GetCommandLineA和GetCommandLineW还是可以得到正确的参数的
查找不到原因..看了一下代码...没有发现什么问题..
回复

使用道具 举报

18#
 楼主| 发表于 2011-7-21 09:36:09 | 显示全部楼层
原帖由 andos 于 2011-7-21 09:15 发表
build32.bat 生成不出reg.exe
但build32_6.bat就可以

*版本是r35

好像是这样..
build32.bat生成的是nt5.2(2003)的版本build32_6.bat生成的是6.1(win7的版本)..
生成reg的时候好像是因为一些函数在nt5中没有,所以就生成不了..
我是在win7中编译调试的...所以暂时没考虑nt5的情况
回复

使用道具 举报

19#
 楼主| 发表于 2011-7-22 16:31:02 | 显示全部楼层
一点小的进展...
弄明白了argc和argv丢失的问题..
新版本很快会出现...
加油..
回复

使用道具 举报

20#
 楼主| 发表于 2011-7-22 17:12:29 | 显示全部楼层
原帖由 kkwy 于 2011-7-22 16:45 发表
hhh333 的 native 03Pe,
中用的是2011-5-25的 NativeCmd.rar
将其换成 2011-5-30的 NativeCmd.rar
会出错:        stop: c0000218 {registry file failure}
         The registry cannot load the hi ...

这个问题有希望在下个版本中解决...
回复

使用道具 举报

21#
 楼主| 发表于 2011-8-22 10:17:19 | 显示全部楼层
原帖由 sunkiss 于 2011-8-20 20:28 发表 我想知道这些参数都是什么意思!支持的命令没有中文解释吗?
其实这些命令都是windows 批处理命令,参考windows的批处理帮助就行了,内部只集成了一些简单的英文帮助,因为这个模式下中文显示还是有点难度。。
回复

使用道具 举报

22#
 楼主| 发表于 2011-9-15 12:43:01 | 显示全部楼层

回复 #113 hhh333 的帖子

最近工作忙..一直没时间打理...
7.22版本nmount应该不会有问题才对..
能不能提供以下..是什么内核的pe
md应该是好使的..至少在2003内核的pe上是好使的...
基于内核api兼容性考虑..xp内核上的问题暂不弄了..因为缺少api..
回复

使用道具 举报

23#
 楼主| 发表于 2011-9-16 08:23:36 | 显示全部楼层
原帖由 hhh333 于 2011-9-15 15:16 发表
是03的内核,md也不是不能用,只是在X盘中建立目录不行,在其他盘可以,应该不是md命令的原因。nmount好象确实是不能在新版中挂载成功。

抽时间弄一下..nmount好像没有错误输出..这个比较难办...可以考虑调native中的mount,调用native已经测试没有问题...
回复

使用道具 举报

24#
 楼主| 发表于 2011-9-16 08:25:34 | 显示全部楼层
原帖由 sunkiss 于 2011-9-15 22:23 发表
新版native.exe中的mount可以成功,能不能移到ncmd中?

可以移植.只是一直没时间弄..而且现在ncmd中的错误还没排完..抽时间弄吧..
回复

使用道具 举报

25#
 楼主| 发表于 2011-9-18 18:06:12 | 显示全部楼层
原帖由 sunkiss 于 2011-9-16 19:30 发表

好吧,再等等吧,足迹辛苦了

有没有下载地址?下载个测试的pe
回复

使用道具 举报

26#
 楼主| 发表于 2011-9-21 19:34:49 | 显示全部楼层

回复 #127 1e3e 的帖子

可以的.代码出自reactos的xp可以用不过没有测试..不知道有没有什么不可预料的东西
回复

使用道具 举报

27#
 楼主| 发表于 2011-9-21 19:58:06 | 显示全部楼层

回复 #126 sunkiss 的帖子

看提示是对象没找到..不知道是什么问题..不知道是什么没找到
回复

使用道具 举报

28#
 楼主| 发表于 2011-9-22 22:56:03 | 显示全部楼层

回复 #130 hotdll 的帖子

nativeshell基本上不打算维护了...吧native cmd加强一下要比nativeshell强..体积也就大了几百K
nativeshell全部是native api写的.维护起来难度比较大.短时间没有时间维护
国庆期间可能会发个native cmd的版本..
回复

使用道具 举报

29#
 楼主| 发表于 2011-10-9 12:25:43 | 显示全部楼层
原帖由 2011kcyou 于 2011-10-7 22:45 发表
kernel.dll报毒

正常吧..
里面实现了win32最基本的api还有一些进程操作和线程操作...都是系统级的
回复

使用道具 举报

30#
 楼主| 发表于 2011-10-9 12:27:57 | 显示全部楼层
原帖由 tegl 于 2011-10-7 23:13 发表


金山毒霸2012也报毒了

我都无语了
编译软件的时候我都把它关了...要不就在虚拟机里编译
编译器创建个文件他就要云鉴定...config一下不知道要创建多少文件...开着至少慢三倍
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-16 19:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表