Board logo

标题: [半原创]如何在右键新建里添加新建Bat文件 [打印本页]

作者: NeoASlan     时间: 2006-10-6 22:57    标题: [半原创]如何在右键新建里添加新建Bat文件
一直以来我一直是一个人独立学习DOS,偶然发现这个论坛,进来一看,激动得热泪盈眶:原来还有这么多志同道合的朋友们。。。 刚来到这里,就学到了很多有用的东西,希望以后能跟大家多多学习。 今天中秋,祝大家中秋节快乐。 时常编写BAT文件,以前总是新建一个文本,然后另存为 .bat,每次都有这个费事的步骤,于是想如何在右键新建菜单里添加新建批处理文件。 搜索发现论坛里没有这样的文章,结合昨天看到的新建CMD文件的文章,借用一下IceCrack在“如何在右键新建菜单里添加新建批处理TEST.CMD文件”帖子里的批处理,(www.cn-dos.net/forum/viewthrea ...) 自己进行了一点扩充,修改为在右键新建里,添加 “TestBat”的批处理文件。 这里多实现了新建时的名字默认为“新建 MS-DOS 批处理文件”自定义为“新建 TestBat”,遗憾的是,“新建”二字不知如何去除。 希望这能算得上送给大家的中秋礼物: @echo off cd /d %temp% echo Windows Registry Editor Version 5.00 >>tmp.reg echo.>>tmp.reg ::下面这个键用来在右键新建里添加“BAT文件” echo [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat\ShellNew] >>tmp.reg echo "NullFile"="" >>tmp.reg echo @="" >>tmp.reg echo.>>tmp.reg ::下面这个键用来自定义新建bat文件的名字,这里设置为“TestBat” echo [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile] >>tmp.reg echo @="TestBat" >>tmp.reg echo "EditFlags"=hex:30,04,00,00 >>tmp.reg regedit /s tmp.reg del tmp.reg exit 特此感谢IceCrack,他的批处理做得很好,于是就不想自己再写了,望见谅。

作者: NeoASlan     时间: 2006-10-6 23:02
把echo @="TestBat" >>tmp.reg 中的TestBat,换成变量%date%,也可以新建出以当前时间命名的批处理文件。刚想到,告诉大家一声。。。

作者: lxmxn     时间: 2006-10-6 23:54
谢谢你的中秋礼物~ 真是相见恨晚啊,以前总是像你所说的那样新建BAT文件,麻烦死了~ 今天算是解决了~ 同时祝愿你和论坛的所有朋友——中秋节快乐~~

作者: utem999     时间: 2006-10-7 01:04
谢谢 非常不错滴说

作者: wydos     时间: 2006-10-7 03:41
谢了,收下了。 %date:~0,-4% 我用这个把星期几给去掉。 但我觉的那个“新建”,挺烦的,不知能不能把它去掉,不出现在文件名中

作者: NeoASlan     时间: 2006-10-7 10:54
To wydos: %date:~0,-4% 等同于 %date:~0,10% 昨天在论坛里才看到 ~0,4 的用法,今天又知道原来-4就是除掉后四位的写法,非常感谢。 “新建”二字确实烦人,我会记住这个问题并寻求解决方法,希望高手指点。

作者: h2o     时间: 2006-10-9 13:48
喜欢这个功能 以后也不用新建记事本了 "新建 " 这个,似乎是在这里……( xp sp2 ) system32 目录下的 shell32.dll 文件里的 字符串 的 第 260 个的编号是 4156 的-( 4156,"新建 " ) 可以用软件 exescope 或者别的什么来修改 shell32.dll 然后安全模式替换原来的( 不到安全模式也可以 先到 x:\WINDOWS\system32\dllcache 里把 shell32.dll 改名,然后 把 x:\WINDOWS\system32 里正在使用的 shell32.dll 改名 备份,然后 把你修改好的 dll 复制到system32 里边 重启 要是没意外 估计就 ok 了 ) ps:改 "新建 " 这个没改过 不知道是不是这里 不过,改过别的,好像都 ok

作者: ljs3509     时间: 2006-10-9 22:15
谢谢!很实用

作者: zouzhxi     时间: 2006-10-10 09:30
TO wydos: 如果我要把日期去掉呢。??? 怎么弄。。。。

作者: NeoASlan     时间: 2006-10-10 10:33
To h2o: 谢谢你的帮助,可惜我现在暂时测试不了,过段时间再弄。。这段时间有点别的事情。来这里都是忙里偷闲来的,呵呵。。。 To zouzhxi: 看你想要什么样的名字,如果就想新建出来的bat文件名字是:“新建 TestBat”,直接用帖子上的那段代码就行。 使用当前日期(含星期几): 要把星期去掉,保留日期,用wydos的代码替换原帖TestBat代码。 要把日期去掉,保留星期,用 %date:~-3,3% 或 %date:~11,3% 替换原帖中TestBat即可。

作者: NeoASlan     时间: 2006-10-10 10:35
其实原帖上给出的代码就是给出了自定义名字的方法。 定义的名字可以使用字符串变量也可以使用字符串常量,用echo 能返回什么样的显示,一般就能用什么样的名字。

作者: wydos     时间: 2006-10-10 10:55
用了几天都不见%date%自动更新,到不如不用这个文件名。 不知各位能不能自动更新日期名?

作者: zh159     时间: 2006-10-10 22:35
%date%只是每次运行bat注册时才有效(也就是在bat中才有效),%date%直接在注册表中生成当天日期,无法自动修改,除非每天开机自动运行一次该bat

作者: NeoASlan     时间: 2006-10-11 00:00
那就是说,不管是变量还是常量,都要储存于注册表中,而且是作为常量储存。。 这个倒没有试过,不喜欢用日期,太长了,而且体现不了bat的主题,不人性化。 所以还是用TestBat,编写测试完这个Bat后再改个实际一点的名字为好。

作者: hanbsome     时间: 2006-10-11 06:29
高手啊。这样强悍的东西要顶才行。

作者: qq82015930     时间: 2006-10-12 11:56
谢谢

作者: swlove     时间: 2006-10-12 12:23
谢谢,学到东西.... [ Last edited by swlove on 2006-10-12 at 12:28 ]

作者: eech     时间: 2006-11-19 11:36
Originally posted by h2o at 2006-10-9 13:48: 喜欢这个功能 以后也不用新建记事本了 "新建 " 这个,似乎是在这里……( xp sp2 ) system32 目录下的 shell32.dll 文件里的 字符串 的 第 260 个的 ...
老大.我试了你的,不行啊.再找找吧

作者: zgren1979     时间: 2006-11-19 13:05
多谢...好列子....研究先

作者: ccwan     时间: 2006-11-19 21:08
xp系统的话,这样不是更简洁? reg add HKCR\.bat\ShellNew /v nullfile /f reg add HKCR\batfile /ve /d testbat /f 反正是该注册表嘛。^_^

作者: andred0421     时间: 2006-11-20 15:54
这么好的东西 支持/...................... 学习ing

作者: hxuan999     时间: 2006-11-23 07:43
不错

作者: redtek     时间: 2006-11-25 03:01
跟楼主学到了很多东西,感谢楼主提供了这么好玩又方便的内容~:)

作者: bootp     时间: 2006-11-27 12:48
把 echo @="TestBat" >>tmp.reg 中的TestBat去掉,即: echo @="" >>tmp.reg 系统就自动生成文件名“新建 BATFILE.bat”、“新建 BATFILE (2).bat”,很方便。

作者: ccuu668     时间: 2007-1-21 10:16
谢谢分享.刚刚才来这个论坛.的确不错的网站.

作者: hdzc     时间: 2007-10-9 14:26
这个论坛高手云集

作者: ktv98     时间: 2008-10-28 00:14
正想提这样的问题.搜索 一下.没想到还真有这问题

作者: tireless     时间: 2008-10-28 03:36
exe 文件的右键添加 /?
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\/?\command]
@="cmd /k "%1" /?"

作者: everest79     时间: 2008-10-28 15:52
作者: jycel     时间: 2008-10-28 21:59
新建二字肯定是有的,除百去改系统文件,你随便建新WORD和记事本这些都有新建二字