|
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
状态 离线
|
|
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
状态 离线
|
|
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 |
|