中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:cndos.rths.ml  论坛域名:cndos.rths.ml/forum

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

作者:
标题: [原创][CMD]看NFO的东东(2.0免安装版本及旧版本卸载) 上一主题 | 下一主题
electronixtar
铂金会员





积分 7492
发帖 2672
注册 2005-9-2
状态 离线
『楼 主』:  [原创][CMD]看NFO的东东(2.0免安装版本及旧版本卸载)

CODE:  [Copy to clipboard]
::ViewNFO2.cmd Version 2.0
::
:: By est, electronicstar@126.com
:: CHiNA DOS UNiON, [url]www.cn-dos.net[/url]


@echo off

if [%1] == []  goto RegViewNfo

color f0      
chcp 437
cls
title %~n1%~x1 - ViewNfo.cmd by est V2.0
type %1
> nul pause
exit

:RegViewNfo
assoc .nfo=nfofile>nul
ftype nfofile="%~d0%~p0ViewNfo2.cmd" "%%1">nul
echo the .nfo file type was registered successfully.
pause> nul
先把代码存成ViewNfo2.cmd,放到一个装程序的目录下,如:D:\Program Files\ViewNfo\,双击执行ViewNfo2.cmd就会自动注册 .nfo 文件的关联。以后下载了Warez的东东看 .nfo 的时候双击就会自动用 ViewNFO.bat打开。如果你不想关联.nfo文件类型,每次看.nfo的时候把.nfo文件拖到ViewNfo2.cmd上就可以了

旧版本卸载:
CODE:  [Copy to clipboard]
more +4 < %~f0 >%temp%\UninstallViewNfo2.reg
regedit -s %temp%\UninstallViewNfo2.reg
exit

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\nfofile]

[HKEY_CLASSES_ROOT\.nfo]
@="MSInfo.Document"
把代码存成UninstallViewNfo2.cmd,双击执行即可以卸载掉.nfo文件关联功能~

网上有很多查看 .nfo 和 ASCII Art 的软件,但是几乎都没有处理好中文乱码的问题。但是cmd下有得天独厚的 codepage环境,可以方便地切换到纯ASCII环境。所以我有了写这个小程序的想法。还有很多不足,希望大家多多提建议。


这张图是旧版本的哈~~只是展示一下显示效果~~



[ Last edited by willsort on 2006-8-2 at 17:41 ]




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-7-18 11:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 2 楼』:  

CODE:  [Copy to clipboard]
改一下兄的代码:
生成文件时 免得用 echo >>
````````````````````````
@echo off
::ViewNFO.cmd Version 1.3.05 Beta
::
:: By est, electronicstar@126.com
:: CHiNA DOS UNiON, www.cn-dos.net

more +12 < %0 >> ViewNFO.bat
assoc .nfo=nfofile
ftype nfofile="%~d0%~p0ViewNFO.bat" "%%1"
exit

:: 生成新文件! ViewNFO.bat
@echo off
color f0      
mode con codepage select=437
cls
title %~n1%~x1 - ViewNfo.cmd by est V1.1.05 Beta
type %1
pause > nul
CODE:  [Copy to clipboard]
用 type  显示 .nfo 文件 会拖到最后面.

如果用  more  < *.nfo
则不会拖到最后面. 不过 是一页一页显示的. 当前是显示第一页. 按 空格键显示下一页.
参考 more /?
  
下面来几张图!
[ Last edited by doscc on 2006-7-18 at 14:33 ]

附件 1: 1.JPG (2006-7-18 14:32, 67.13 K, 下载附件所需积分 1 点 ,下载次数: 10)


附件 2: 2.JPG (2006-7-18 14:32, 36.02 K, 下载附件所需积分 1 点 ,下载次数: 6)


附件 3: 3.JPG (2006-7-18 14:33, 46.35 K, 下载附件所需积分 1 点 ,下载次数: 6)


附件 4: 4.JPG (2006-7-18 14:33, 52.08 K, 下载附件所需积分 1 点 ,下载次数: 6)


2006-7-18 14:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7492
发帖 2672
注册 2005-9-2
状态 离线
『第 3 楼』:  

楼上的用法经典!貌似当年玩basic也是在.bas后写机器码直接call~~~

8过不推荐用more,觉得不方便~~

貌似程序可以升级到 1.6.00了,呵呵

如果有高手能解决路径含空格的问题,写出只有一个bat,不用安装的bat就好了

[ Last edited by electronixtar on 2006-7-18 at 15:32 ]




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-7-18 14:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 4 楼』:  

强!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!又学到一招............................ 我灌....................

2006-7-18 15:34
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7492
发帖 2672
注册 2005-9-2
状态 离线
『第 5 楼』:  

BagPipe过奖了,比其你的那些代码这个东东很没文化了




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-7-18 15:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1514
注册 2002-10-18
状态 离线
『第 6 楼』:  

Re est:

      也凑个份子吧,功能和代码都作了简化。

      如果要贴nfo的话,最好能贴原件,而不是截图,这样不仅可以在本地还原,也可以减小附件体积。

      将.nfo注册后,可以在cmd中以nfo文件全名直接查看,将.nfo加入到pathext,可以直接省略扩展名查看。

      另外,谁有兴趣,不妨设计一个cn-dos的nfo。
CODE:  [Copy to clipboard]
@echo off & chcp 437>nul
for %%f in ("%~dpn1*.nfo") do title %%~nxf & type "%%~f" & pause>nul
[ Last edited by willsort on 2006-7-19 at 13:29 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-7-19 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 7 楼』:  

我也给你们来一下子,补充说明一下 CODE PAGE的概念及其设置值

Chcp
Displays the number of the active console code page, or changes the console's active console code page. Used without parameters, chcp displays the number of the active console code page.
Syntax
chcp [nnn]
Parameters
nnn : Specifies the code page. The following table lists each code page supported and its country/region or language:
Code page        Country/region or language
437        United States
850        Multilingual (Latin I)
852        Slavic (Latin II)
855        Cyrillic (Russian)
857        Turkish
860        Portuguese
861        Icelandic
863        Canadian-French
865        Nordic
866        Russian
869        Modern Greek
什么是code page, 怎么修改windows cmd中的codepage


如果你的cmd无法正常显示中文, 或者其他字符, 通过chcp 来修改, 参数是nnn代表3个数字. 简体中文的codepage是: 936 西文是:1252


Code page 的历史:



1. Codepage的定义和历史
字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为

单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码.
双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码.主要用来对大字符集的东方文字进行编码.
codepage 指的是一个经过挑选的以特定顺序排列的字符内码列表,对于早期的单字节内码的语种,codepage中的内码顺序使得系统可以按照此列表来根据键盘的输入值给出一个对应的内码.对于双字节内码,则给出的是MultiByte到Unicode的对应表,这样就可以把以Unicode形式存放的字符转化为相应的字符内码,或者反之,在Linux核心中对应的函数就是utf8_mbtowc和utf8_wctomb.
在1980年前,仍然没有任何国际标准如ISO-8859或Unicode来定义如何扩展US-ASCII编码以便非英语国家的用户使用.很多IT厂商发明了他们自己的编码,并且使用了难以记忆的数目来标识:



例如936代表简体中文. 950代表繁体中文.



1.1 CJK Codepage
同 Extended Unix Coding ( EUC )编码大不一样的是,下面所有的远东 codepage 都利用了C1控制码 { =80..=9F } 做为首字节, 使用ASCII值 { =40..=7E { 做为第二字节,这样才能包含多达数万个双字节字符,这表明在这种编码之中小于3F的ASCII值不一定代表ASCII字符.

CP932

Shift-JIS包含日本语 charset JIS X 0201 (每个字符一个字节) 和 JIS X 0208 (每个字符两个字节),所以 JIS X 0201平假名包含一个字节半宽的字符,其剩馀的60个字节被用做7076个汉字以及648个其他全宽字符的首字节.同EUC-JP编码区别的是, Shift-JIS没有包含JIS X 202中定义的5802个汉字.

CP936

GBK 扩展了 EUC-CN 编码( GB 2312-80编码,包含 6763 个汉字)到Unicode (GB13000.1-93)中定义的20902个汉字,中国大陆使用的是简体中文zh_CN.

CP949

UnifiedHangul (UHC) 是韩文 EUC-KR 编码(KS C 5601-1992 编码,包括2350 韩文音节和 4888 个汉字a)的超集,包含 8822个附加的韩文音节( 在C1中 )

CP950

是代替EUC-TW (CNS 11643-1992)的 Big5 编码(13072 繁体 zh_TW 中文字) 繁体中文,这些定义都在Ken Lunde的 CJK.INF中或者 Unicode 编码表中找到.

注意: Microsoft采用以上四种Codepage,因此要访问Microsoft的文件系统时必需采用上面的Codepage .


1.2 IBM的远东语言Codepage
IBM的Codepage分为SBCS和DBCS两种:

IBM SBCS Codepage


37 (英文) *
290 (日文) *
833 (韩文) *
836 (简体中文) *
891 (韩文)
897 (日文)
903 (简体中文)
904 (繁体中文)
IBM DBCS Codepage

300 (日文) *
301 (日文)
834 (韩文) *
835 (繁体中文) *
837 (简体中文) *
926 (韩文)
927 (繁体中文)
928 (简体中文)
将SBCS的Codepage和DBCS的Codepage混合起来就成为: IBM MBCS Codepage

930 (日文) (Codepage 300 加 290) *
932 (日文) (Codepage 301 加 897)
933 (韩文) (Codepage 834 加 833) *
934 (韩文) (Codepage 926 加 891)
938 (繁体中文) (Codepage 927 加 904)
936 (简体中文) (Codepage 928 加 903)
5031 (简体中文) (Codepage 837 加 836) *
5033 (繁体中文) (Codepage 835 加 37) *
*代表采用EBCDIC编码格式

由此可见,Mircosoft的CJK Codepage来源于IBM的Codepage

2006-7-19 15:02
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
chenwei450
新手上路





积分 8
发帖 4
注册 2006-8-2
状态 离线
『第 8 楼』:  

学习中。。。谢谢

2006-8-2 14:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dengke227
初级用户

火焙鱼


积分 35
发帖 14
注册 2007-5-24
来自 湖南省湘潭市
状态 离线
『第 9 楼』:  

刚来这里转悠,发现楼主的好东西,非常感谢!

2008-1-6 14:49
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子  回复  引用回复
zhangzhaoc
新手上路





积分 16
发帖 8
注册 2008-1-28
状态 离线
『第 10 楼』:  



2008-1-28 14:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zljzsm
初级用户




积分 29
发帖 29
注册 2008-5-7
状态 离线
『第 11 楼』:  

哎   乡下人进城    看到好东西就藏
等什么时候俺也有了文化
俺也上来给你们写点什么
就不知道到时候有没有人给俺捧场

2008-5-8 00:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011