[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理复制文件并创建桌面快捷方式

本帖最后由 459500160 于 2021-1-27 15:50 编辑

如题吧,主要是想搞个简单的程序多开,实现不同功能,想实现的目标是,复制原文件夹内的所有文件到一个目录内,比如C:\a复制到d:\a并重复复制操作a1,a2,a3直到a10,然后这把这文件夹内的1.exe分别生成桌面快捷方式1.exe-10.exe这样的,现在用xcopy+vbs的笨方法实现了运行十次创建十个快捷方式,经过查资料现在可以实现set /p输入数字后xcopy根据输入的数字执行复制次数并重重命名新的文件夹,但不知道怎么让vbs创建的桌面快捷方式也可以这样实现,后来又研究了几天,想加个if判断,限制只能输入1-10这十个数字,但对命令行掌握的知识实在太少,卡在这里不知道怎么继续了,所以进坛子来求助大神们看看有没有什么可以传授的知识点可以让我自己写出这个批处理?



最后总结下想实现的目的,用户输入想要多开的程序数量,程序分两步实现功能,xcopy实现文件的多开,vbs实现创建对应数量的桌面快捷方式,操作完成后删除自身

额外的功能是防止用户输入错误,添加if判断,限制输入内容仅为1-10这十个数字,不是这十个数字就返回set /p

回复 1# 459500160
  1. @echo off
  2. :loop
  3. set "n="
  4. set /p "n=请输入1到10之间的整数:"
  5. if "x%n%" equ "x" (
  6.     goto :loop
  7. )
  8. if %n% geq 1 (
  9.     if %n% leq 10 (
  10.         goto :ExecStart
  11.     )
  12. )
  13. goto :loop
  14. :ExecStart
  15. echo 输入正确
  16. REM 下面是你需要执行的代码
  17. pause
复制代码
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. :loop
  3. set "n="
  4. set /p "n=请输入1到10之间的整数:"
  5. echo %n%|findstr /r /be /v "[1-9] 10">nul&&goto loop
  6. echo good
  7. ....
复制代码

TOP

回复 3# qixiaobin0715


    哇哈哈,好厉害的感觉,竟然看不懂,看来基础知识还得再补下,这个交互判断是有了,创建快捷方式要怎么实现呢?初步的想法是mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\a2.lnk""):b.TargetPath=""D:\b2\a.exe"":b.WorkingDirectory=""%~dp0"":b.Save:close")
del %0
然后要多开几个就复制几个这个批处理然后把名称依次改,保存成十份

TOP

回复 2# Batcher


    谢谢大神,这个写得明了,看懂了,我再研究看看能不能套这个尝试批量创建桌面快捷方式,不行的话,还可以再过来请教吗?

TOP

本帖最后由 459500160 于 2021-1-27 15:50 编辑
  1. @echo off
  2. :loop
  3. set "n="
  4. set /p "n=请输入要多开的数量(1-10):"
  5. if "x%n%" equ "x" (
  6.     echo 输入错误
  7.     goto :loop
  8. )
  9. if %n% geq 1 (
  10.     if %n% leq 10 (
  11.         goto :ExecStart
  12.     )
  13. )
  14. goto :loop
  15. :ExecStart
  16. for /l %%i in (2,1,%n%) do xcopy "D:\b" "D:\b%%i" /h/q/i/c/e/y
  17. set "p=%~dp0"
  18. for /L %%i in (2,1,%n%) do (
  19.     mshta "javaScript:a=new ActiveXObject('WScript.Shell');b=a.CreateShortcut(a.SpecialFolders('Desktop')+'\\a%%i.lnk');b.TargetPath='D:\b%%i\\a.exe';b.WorkingDirectory='%p:\=\\%';b.Save();close();"
  20. )
  21. del %0
复制代码
谢谢几位大大的解答,现在已经可以正常运行了
最后补充一句,我下载了论坛的播布客IceRain作品Windows批处理1-18(全),教程里面的swf文件用potplayer法播放

TOP

本帖最后由 WHY 于 2021-1-27 10:28 编辑
  1. set "p=%~dp0"
  2. for /L %%i in (2,1,%n%) do (
  3.     mshta "javaScript:a=new ActiveXObject('WScript.Shell');b=a.CreateShortcut(a.SpecialFolders('Desktop')+'\\a%%i.lnk');b.TargetPath='D:\\Program Files\\b%%i\\a.exe';b.WorkingDirectory='%p:\=\\%';b.Save();close();"
  4. )
复制代码

TOP

回复 7# WHY


    谢谢大佬,这个内容看得有点晕,还不懂java什么东西的,直接复制过来了

TOP

返回列表