Board logo

标题: 批处理文件名生成工具的改下代码怎样在符号之间插入名称? [打印本页]

作者: mook    时间: 2012-1-18 19:22     标题: 批处理文件名生成工具的改下代码怎样在符号之间插入名称?

1.提前说明:
这段代码
mshta vbscript:clipboarddata.setdata("text","_(  )_%date:~,4%.%date:~5,2%.%date:~8,2%.%time:~,2%%time:~3,2%%time:~6,2%")(close)


可以保存为bat也可以正常运行的
点开生成的是_(  )_“年” “.“ “月”“.“  “日”“.“ “时间”的文件名自动复制到了剪切板上。
_(  )_2012.01.18.154647
_(  )_2012.01.18.154651
_(  )_2012.01.18.154654
_(  )_2012.01.18.154658
_(  )_2012.01.18.154701
这种类型的!

2.问题阐述:
现在我需要把这段代码改下
我想往那段代码前面_(  )_这个中间手动选择加文件名,_(  )_中间有2个空格加文件时候是“_(  ”后一个空格。“   )”前一个空格 。把需要加进去的文件名加入到“_(  ”和“   )”中间。
比如
1.图片
2.软件
3.音乐
4.电影
5.文档
6.星标

在运行完前面那段代码后
提示让输入序号。

序号1是图片 序号2是软件...

如果我输入1就可以生成

输入2就可以生成_( 软件 )_“年” “.“ “月”“.“  “日”“.“ “时间”这样子的文件名
例如:
我输入 3
就生成了
_( 音乐 )_2012.01.18.155646
这样式的文件名。
我输入 4
就生成
_( 电影 )_2012.01.18.155749

这样式的文件名该怎么改那?
作者: 小胖狐狸    时间: 2012-1-19 07:53

本帖最后由 小胖狐狸 于 2012-1-19 08:34 编辑

参考1:http://www.bathome.net/thread-8329-1-1.html
参考2:群聊天记录bat-batman(841615149) 2011-11-10 10:01:50
  1. @echo off
  2. echo 1、按下“1”,关机
  3. echo 2、按下“2”,重启
  4. echo 3、按下“3”,注销
  5. set "_1=s"&set "_2=l"&set "_3=r"
  6. set /p a=请输入要执行的操作:
  7. call,shutdown /%%_%a%%% /t 5
复制代码
解决本问题的代码如下:
  1. @echo off
  2. :Choice
  3. echo 1、按下“1”,图片
  4. echo 2、按下“2”,软件
  5. echo 3、按下“3”,音乐
  6. echo 4、按下“4”,电影
  7. echo 5、按下“5”,文档
  8. echo 6、按下“6”,星标
  9. echo 7、按下“7”,退出此批处理
  10. set "_1=图片"&set "_2=软件"&set "_3=音乐"&set "_4=电影"&set "_5=文档"&set "_6=星标"
  11. set /p a=请输入要执行的操作:
  12. if %a%==7 exit
  13. if not defined _%a% (
  14. cls
  15. echo 你输入的是“%a%”,输入非法,请输入1-6之间的数字
  16. goto :Choice
  17. )
  18. set "name=_( %%_%a%%% )_%date:~,4%.%date:~5,2%.%date:~8,2%.%time:~,2%%time:~3,2%%time:~6,2%"
  19. call,mshta vbscript:clipboarddata.setdata("text","%name%")(close)
  20. call,set var=%name%
  21. cls
  22. echo 你输入的是“%a%”
  23. echo 字符串“%var%”已经复制到剪贴板
  24. echo 可随意粘贴
  25. goto :Choice
复制代码

作者: mook    时间: 2012-1-27 21:16

回复 2# 小胖狐狸


    高手啊!这个不错是我要啊的啊!能不能吧第7个选项取消啊!吧那个改成选择执行完1-6任意任务后就自动退出啊!选择2后自动退出!比如选择4也是!怎么弄啊后面加@exit把if %a%==7 exit删除了不起作用啊!该怎么弄啊!请高手指教!
作者: mook    时间: 2012-2-1 11:04

有木有高手帮忙看看啊~
作者: mook    时间: 2012-3-6 22:41

回复 4# mook


    有木有高手知道怎么弄啊~
作者: terse    时间: 2012-3-7 02:13

回复 5# mook
if %a%==7  后面的7 改成你要的
作者: mook    时间: 2012-3-7 08:51

回复 6# terse
  1. @echo off
  2. :Choice
  3. echo 1、按下“1”,图片
  4. echo 2、按下“2”,软件
  5. echo 3、按下“3”,音乐
  6. echo 4、按下“4”,电影
  7. echo 5、按下“5”,文档
  8. echo 6、按下“6”,星标
  9. echo 7、按下“7”,退出此批处理
  10. set "_1=图片"&set "_2=软件"&set "_3=音乐"&set "_4=电影"&set "_5=文档"&set "_6=星标"
  11. set /p a=请输入要执行的操作:
  12. if %a%==1-6 exit(这样子7改成1-6?)
  13. if not defined _%a% (
  14. cls
  15. echo 你输入的是“%a%”,输入非法,请输入1-6之间的数字
  16. goto :Choice
  17. )
  18. set "name=_( %%_%a%%% )_%date:~,4%.%date:~5,2%.%date:~8,2%.%time:~,2%%time:~3,2%%time:~6,2%"
  19. call,mshta vbscript:clipboarddata.setdata("text","%name%")(close)
  20. call,set var=%name%
  21. cls
  22. echo 你输入的是“%a%”
  23. echo 字符串“%var%”已经复制到剪贴板
  24. echo 可随意粘贴
  25. goto :Choice
复制代码

作者: terse    时间: 2012-3-7 12:59

回复 7# mook
goto :Choice  改 exit
作者: mook    时间: 2012-4-23 08:10

回复 8# terse
对啊就是我想要的,就是顺便问下,可不可以实现这个,但是我感觉不可能,但是我先说下看看有木有高手解决这个问题。就是输入指定数字后立即退出不用按Enter执行就能立马退出。这个应该不好实现,
就是这段代码上面改。这个合适的代码。
  1. @echo off
  2. :Choice
  3. echo 1、按下“1”,图片
  4. echo 2、按下“2”,软件
  5. echo 3、按下“3”,音乐
  6. echo 4、按下“4”,电影
  7. echo 5、按下“5”,文档
  8. echo 6、按下“6”,星标
  9. echo 7、按下“7”,退出此批处理
  10. set "_1=图片"&set "_2=软件"&set "_3=音乐"&set "_4=电影"&set "_5=文档"&set "_6=星标"
  11. set /p a=请输入要执行的操作:
  12. if %a%==7 exit
  13. if not defined _%a% (
  14. cls
  15. echo 你输入的是“%a%”,输入非法,请输入1-6之间的数字
  16. goto :Choice
  17. )
  18. set "name=_( %%_%a%%% )_%date:~,4%.%date:~5,2%.%date:~8,2%.%time:~,2%%time:~3,2%%time:~6,2%"
  19. call,mshta vbscript:clipboarddata.setdata("text","%name%")(close)
  20. call,set var=%name%
  21. cls
  22. echo 你输入的是“%a%”
  23. echo 字符串“%var%”已经复制到剪贴板
  24. echo 可随意粘贴
  25. exit
复制代码
还还有最后一个小问题。就是比如说实际是2012.04.23  8点08分08秒  
能不能出来的文件是这样子的: 比如说图片  就是:_( 图片 )_2012.04.22. 080808
这样子的格式。二现在的是_( 图片 )_2012.04.22. 080808这个样子的格式.8前面少了个0
作者: gawk    时间: 2012-4-23 11:59

回复 9# mook


http://www.bathome.net/thread-1016-1-1.html
作者: mook    时间: 2012-4-25 17:06

回复 10# gawk


    麻烦问下你的意思是set /p 限时输入?
作者: gawk    时间: 2012-4-25 18:11

回复 11# mook


    嗯,试试吧。
作者: mook    时间: 2012-5-5 09:44

回复 12# gawk
不合适啊!什么情况啊~就是能麻烦你给我写个示例程序代码吗?就是我怕我那个地方弄得不合适!看看和我前面列出的一样吗?谢谢年!你人真好~
作者: gawk    时间: 2012-5-5 11:46

回复 13# mook


    set /p限时输入的代码人家几年前就写了,再写也还是那个样子,能看懂才是正道。




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