Board logo

标题: [特效代码] [已解决]怎样使文件拖拽/拖放到bat上就执行命令? [打印本页]

作者: vsbat    时间: 2009-7-11 21:13     标题: [已解决]怎样使文件拖拽/拖放到bat上就执行命令?

本帖最后由 pcl_test 于 2018-4-20 17:02 编辑

比如:
有一个 a.bat 和  b.txt
那么怎样写  a.bat  使我把 b.txt 拖拽到其上面时生成一个新的文件 文件名为 b.txt.bat  

高手们ZHIJIAO ---------

[ 本帖最后由 vsbat 于 2009-7-13 17:06 编辑 ]
作者: czl1378    时间: 2009-7-11 21:28

如果说是在外面的话直接用1%读取,如果说是运行后呢,用Set /p就行了
作者: czl1378    时间: 2009-7-11 21:32

Ren “1~%” “1~%.bat”
我用手机在上,没测试
作者: tireless    时间: 2009-7-11 22:26

  1. @for %%a in (%*) do @cd.>%%a.bat
复制代码

作者: keen    时间: 2009-7-11 22:37     标题: 回复 1楼 的帖子

看你生成的新文件是什么?如果生成新的0字节的文件,用4楼的代码。如果只是要改一下名字,用下面的代码:
  1. @ren %~s1 %~nx1.bat
复制代码

作者: vsbat    时间: 2009-7-12 13:45     标题: [已解决]--使文件拖拽到批处理上,就使批处理对其执行命令

 首先十分感谢四位高手--帮助--
我刚才对各位的方法做了测试-----首先我还要再声明一下--我要的效果是 把b.txt 拖拽到
a.bat 上时新生成一个文件命名为b.txt.bat  且其内容为b.txt的内容当然 这里的b.txt只是个代表--要求不只是对txt文件适用
好了,首先3楼的测试无新文件生成,原因不详
再先看5楼的
  1.       
  2. @ren %~s1 %~nx1.bat  
  3. [/code ]
  4. 此代码执行后---将b.txt改名为b.txt.bat--
  5. 但未保留b.txt   且一旦文件名中有  空格 如:sgd  fg.txt   或  文件名中有 点  如:we.bf.txt  上述代码失败不起作用---
  6. 所有答案中 4 楼的 最完美
  7. 实现了 拖拽 新生成文件  如:将dd.txt.bat  拖拽到其上 将新生成  dd.txt.bat.bat
  8. 但唯一缺点是 建立的新文件 是 0 字节 即空的
  9. 针对这点 我做如下修改 终于使代码完美达到目的:
  10. [code]
  11. @for %%a in (%*) do type  %*>%%a.bat
复制代码
再次感谢 4 楼------
作者: keen    时间: 2009-7-12 13:56     标题: 回复 6楼 的帖子

首先,我要说的是,问题得到解决请给顶楼的标题添加【已解决】字样。不要跟帖添加【已解决】。谢谢!

再次,我想说的是你的问题在顶楼没有描述清楚,才导致大家猜测你的问题给的代码。所以各有利弊。

最后,对楼主的探索学习精神表扬,没有因为我们的各种答案,而追加询问,而是自己研究解决,值得表扬。
作者: tireless    时间: 2009-7-12 17:20

如果只拖入一个文件:
  1. @copy %1 %1.bat
复制代码
如果要拖入多个文件:
  1. @for %%a in (%*) do @copy %%a %%a.bat
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2