中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 06:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何这样执行批处理代码?从txt和从粘贴板
楼 主 如何这样执行批处理代码?从txt和从粘贴板 发表于 2009-09-05 04:39 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
1、从txt中执行一段cmd代码
因为我不少人保存在电脑里面的代码都是txt的
怎么在鼠标右键中添加一个“bat”或者“cmd”
点击这个选项就直接把这个txt当做bat文件来执行。。。

2、点击某一个文件,就直接执行粘贴板的命令。
以前经常看到非常批处理的伤脑筋这么玩。。。
2 发表于 2009-09-05 11:37 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
哇,好多人进来了,都没有回答偶啊。是这个问题问得太菜了?
还是我没有表述明白?
3 发表于 2009-09-05 12:58 ·  中国 广东 广州 电信
初级用户
★★
积分 111
发帖 62
注册 2007-12-31 20:10
UID 107336
性别 男
状态 离线
第一个问题请参考注册表
HKEY_CLASSES_ROOT\txtfile\shell的部分
4 发表于 2009-09-06 00:04 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
UID 96653
性别 男
状态 离线
1、在“运行”对话框中运行:
reg add HKEY_CLASSES_ROOT\txtfile\shell\RunAsBat\command /ve /d "cmd /c copy \"%1\" \"%temp%\txt.bat\">nul & \"%temp%\txt.bat\"" /f


2、
nircmd.exe exec show "~$clipboard$"
5 发表于 2009-09-06 10:15 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
感谢tireless
吼吼,一看nircmd.exe,好多好多强大的命令哦。。。
http://www.nirsoft.net/utils/nircmd.html
6 发表于 2009-09-06 10:36 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
找到这么一个代码。。。
@echo off
:其中将剪贴板的文本保存为text.bat的作者为清风——地址:http://bbs.verybat.org/viewthread.php?tid=11762
mshta vbscript:createobject("scripting.filesystemobject").opentextfile("text.bat",2,true).writeline(CreateObject("htmlfile").parentwindow.clipboarddata.getdata("text"))(window.close)
::start /w notepad text.bat
start text.bat

不懂vbs,怎么弄成关闭text.bat时就删除本身???
7 发表于 2009-09-06 10:41 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
del /f %0
这个怎么写到text.bat中去???
8 发表于 2009-09-06 10:45 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
直接用del test.bat好像不行
在test里面添加一句也不行echo del /f %0 >> text.bat
再test里添加echo del text.bat >> text.bat还是不行。奇怪了。。。

[ Last edited by loquat on 2009-9-6 at 10:49 ]
9 发表于 2009-09-06 11:08 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
还有一个vbs的,怎么去掉它的弹窗???并在bat执行完毕后删除临时文件???

Option Explicit

dim strClipb
dim objIE
Dim WshShell,oExec

Set objIE = CreateObject("htmlfile")
strClipb=objIE.parentWindow.clipboardData.getData("text")
WScript.Echo strClipb

CreateBat strClipb
If strClipb = "" Then
Set objIE =Nothing
WScript.Quit
End If '剪贴板如果为空,不执行命令'

Set WshShell = CreateObject("WScript.Shell")
'Set oExec= WshShell.Exec("%comspec% /k _tempbat.bat") '这句CMD不能自动关闭
WshShell.Run("%comspec% /c call _tempbat.bat"),1, false '执行BAT, "pause"执行后退出

Set objIE =Nothing
Set WshShell =Nothing

Sub CreateBat(strCopy) '创建BAT文件
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("_tempbat.bat", True)
MyFile.WriteLine strCopy &vbcrlf& "pause" '在所有代码后加回车及"pause"

MyFile.Close
Set fso =Nothing
Set MyFile =Nothing
End Sub



[ Last edited by loquat on 2009-9-6 at 11:10 ]
10 发表于 2009-09-07 00:21 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
再顶一下,问题还没有完美解决。
希望有人再进来看一下。怎么删除临时文件。。。
11 发表于 2009-09-07 02:19 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
UID 135147
性别 男
来自 广西
状态 离线
建一个bat.bat文件,内容如下:
@copy %1 %~n1.cmd 1>nul
@call %~n1.cmd
@del /q %~n1.cmd 1>nul


把要变为BAT执行的文件类型,在选择打开方式中指定始终用bat.bat程序打开

这样每次双击该类型的文件,就当成批处理文件运行了
精简
=> 个人网志
12 发表于 2009-09-07 09:31 ·  中国 广东 佛山 电信
初级用户
积分 20
发帖 12
注册 2009-09-07 08:44
UID 151614
性别 男
状态 离线
到处看看
13 发表于 2009-09-08 08:02 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
是一种方法,但是txt文件怎么能改成始终作为bat打开呢?

你能看看楼上那几个已经成功的代码吗?
如果能删除临时文件就完美了。
14 发表于 2009-09-08 08:53 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
你说始终啊…… 关联成batfile
如果是看文本的话 右键-编辑

觉得不方便看文本的话,最多再改回去……

[ Last edited by 523066680 on 2009-9-8 at 08:57 ]
15 发表于 2009-09-08 12:50 ·  中国 湖南 长沙 电信
初级用户
★★
积分 81
发帖 80
注册 2009-08-30 06:32
UID 151201
性别 男
状态 离线
Originally posted by 523066680 at 2009-9-8 08:53:
你说始终啊…… 关联成batfile
如果是看文本的话 右键-编辑

觉得不方便看文本的话,最多再改回去……

[ Last edited by 523066680 on 2009-9-8 at 08:57 ]


不是,上面tireless提供的那个代码。像现在这样我觉得是最好的了。。。



现在的问题是执行剪贴板的bat代码那个。。。

上面我上面找到的代码都是vbs的,都要生成临时bat文件。怎么执行完后删除临时文件。vbs不懂。。。
论坛跳转: