中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】右键添加“以首行字符重命名此文件”
« [1] [2] »
作者:
标题: 【求助】右键添加“以首行字符重命名此文件” 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『楼 主』:  【求助】右键添加“以首行字符重命名此文件”

如题;
由于常在网上copy。粘贴,每次保存时时还要右键重名一下文件,烦了
这类文件都是些文本文件,如
.txt
.htm
.html
1.现在让注册表给右键添加个这个功能,不知键值在哪。。。?
2.对于htm文件会难度较大,因为不是ascii码字符,源文件还有许多<>/\类字符,不知用sed。。。怎么处理?
为方便大家解答,我假定这些文件行首都为合法字符,


(参考5楼hat的代码)答案如下:(可过滤非法字符,可以根据自己需要对代码修改)
假定你的bat1环境变量值为C:\mybat\myrename.bat(自己配)
@echo off
<%0 more +5>C:\mybat\myren.bat
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\command /ve /t REG_SZ /d "cmd.exe /c call %bat1% %%1" /f>nul
exit

@echo off
for %%a in (%1)do call:renm "%%~dpna" %%~xa
:renm
set/p t=<"%~1%2"
set t=%t:.=%
set t=%t:/=%
set t=%t:\=%
set t=%t:?=%
set t=%t::=%
set t=%t:;=%
set t=%t:^*=%
set "t=%t:^<=%"
set "t=%t:^>=%"
set "t=%t:^|=%"
::超多同名文件可以循环重命名,但代码长了
ren "%~1%2" "%t%%2"||ren "%~1%2" "%t%_1%2"||ren "%~1%2" "%t%_2%2"||(echo err&pause)
exit
http://www.cn-dos.net/forum/viewthread.php?tid=40212

感谢!加分!

[ Last edited by plp626 on 2008-5-12 at 10:31 AM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-11 07:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

http://www.cn-dos.net/forum/viewthread.php?tid=32984

2008-5-11 10:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 3 楼』:  

inf:
[Version]
Signature="$Chicago$"

[DestinationDirs]
DefaultDestDir=12,"web"

[DefaultInstall]
AddReg=SearchText_AddReg,ForUnInstall
CopyFiles=SearchText_CopyFiles

[DefaultUnInstall]
DelReg=SearchText_AddReg,ForUnInstall
DelFiles=SearchText_CopyFiles

[SearchText_CopyFiles]
SaveText.inf
SaveText.html

[SearchText_AddReg]
HKCU,"Software\Microsoft\Internet Explorer\MenuExt\保存内容(&S)",,0x00000000,"%12%\web\SaveText.html"
HKCU,"Software\Microsoft\Internet Explorer\MenuExt\保存内容(&S)","contexts",0x00010001,50

[ForUnInstall]
HKLM,%RegPath%,"DisplayName",,"SaveText By Slore"
HKLM,%RegPath%,"HelpLink",,"bbs.cn-dos.net"
HKLM,%RegPath%,"Publisher",,"Slore"
HKLM,%RegPath%,"UninstallString",0x00000000,"%UnistallStr%%12%\Web\SaveText.inf,DefaultUninstall,5"

[Strings]
RegPath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SaveText"
UnistallStr="RunDll32 advpack.dll,LaunchINFSection "

;;;;;;;--------------------------------------------
;-- Only localize strings below this line
;-- This SearchText Setup Inf Made By SLore
;;;;;;---------------------------------------------
能否讲下代码流程。。。
还有,安装了,不会用,右键没变化。。。



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-11 10:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





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

右键,安装……

需要重新启动IE

然后你选段文件右键……看看

2008-5-11 10:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

我试着写了一下,成功过一次,可是代码被我改了,又不成功了,关键就是写注册表的那句,实在不记得该怎样写了。哪位能帮我改改?
@echo off
set DstDir=C:\test\test.bat
>"%DstDir%" type nul
>>"%DstDir%" (
  echo @echo off
  echo set /p fname=^<"%%1"
  echo ren "%%1" "%%fname%%%%~x1"
)
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\shell /ve /t REG_SZ /d "cmd.exe /c call \"%DstDir%\" %%1" /f>nul
正确的代码如下:
@echo off
set DstDir=C:\test\test.bat
>"%DstDir%" type nul
>>"%DstDir%" (
  echo @echo off
  echo set /p fname=^<"%%1"
  echo ren "%%1" "%%fname%%%%~x1"
)
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\command /ve /t REG_SZ /d "cmd.exe /c call \"%DstDir%\" %%1" /f>nul
[ Last edited by HAT on 2008-5-11 at 01:20 PM ]

2008-5-11 10:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

::下面这句省略就是按项名为右键菜单名
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\  /ve /d "右键菜单名" /f
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\command /ve /t REG_SZ /d "cmd.exe /c call \"%DstDir%\" %%1" /f

2008-5-11 11:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

[381.rar] slore 网页内容右键保存 2008-5-11 更新 修正unicode无法保存错误 1kB 2008/05/11(Sun)11:45 SaveText By Slore.rar

http://upload.cn-dos.net/img/381.rar

刚才测试发现论坛上面的»无法保存……
就改了下……

现在自动识别了。
也就是说:

如果你选的内容有unicode字符则保存文本为unicode,
如果没有就是默认的,一般是ANSI编码。


2008-5-11 11:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  

汗水,原来是误把command写成了shell,值了一晚上夜班,大脑缺氧啦^_^
多谢 slore 兄

2008-5-11 13:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by slore at 2008-5-11 11:16 AM:
[381.rar] slore 网页内容右键保存 2008-5-11 更新 修正unicode无法保存错误 1kB 2008/05/11(Sun)11:45 SaveText By Slore.rar

[url]http://upload.cn-dos.net/ ...

两个代码都是:





山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-11 13:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 10 楼』:  

XP SP2下测试通过……

2008-5-11 14:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 11 楼』:  

Set objDlg = CreateObject("MSComDlg.CommonDialog")

这个调用保存对话框……

如果你不能用这个对象……只能保存到固定路径了……

2008-5-11 14:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 12 楼』:  

如果你的不支持,就在把FSO的path改改,把DLG对象去掉

2008-5-11 14:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 13 楼』:  

实在想交互点,可以用inputbox

2008-5-11 14:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 14 楼』:  

若首行字符含有%,“一楼的这代码,提示符就会显示找不到文件。。。
大家看看。。。。%真让我头痛。。。
@echo off
<%0 more +5>C:\mybat\myren.bat
reg add HKEY_CLASSES_ROOT\*\shell\MyRename\command /ve /t REG_SZ /d "cmd.exe /c call %bat1% %%1" /f>nul
exit

@echo off
for %%a in (%1)do call:renm "%%~dpna" %%~xa
:renm
set/p t=<"%~1%2"
set t=%t:.=%
set t=%t:/=%
set t=%t:\=%
set t=%t:?=%
set t=%t::=%
set t=%t:;=%
set t=%t:^*=%
set "t=%t:^<=%"
set "t=%t:^>=%"
set "t=%t:^|=%"
::超多同名文件可以循环重命名,但代码长了
ren "%~1%2" "%t%%2"||ren "%~1%2" "%t%_1%2"||ren "%~1%2" "%t%_2%2"||(echo err&pause)
exit




山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-12 11:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 15 楼』:  

我的从网页上直接保存的你用不了的话。要右键的那个……

FSO读文本一行你会吧?
然后给你说个replace函数……

2008-5-12 13:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: