找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29904|回复: 63

[文件操作] 求个批处理:将当前路径下的某个文件夹创建快捷方式,然后发送到指定路径?

[复制链接]
发表于 2025-6-21 12:33:12 | 显示全部楼层 |阅读模式
比如当前路径下有三个文件夹:aa  bb cc
我现在想将aa bb这两个各自创建快捷方式aa.link  bb.link,然后将快捷方式发送到Scripts Panel路径下,如下:
C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel

不知如何创建快捷方式。还有Adobe InDesign 2024这个以后会是变的,可能是Adobe InDesign 2025

求指点,万分感谢
发表于 2025-6-21 13:47:14 | 显示全部楼层
回复 1# ednykissyou


请在 C:\Program Files\Adobe 这个文件夹下截图看看有哪些子文件夹?

如果需要上传文件,请用使用网盘。如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
发表于 2025-6-21 14:04:17 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 设置源文件夹名称
  4. set "source1=aa"
  5. set "source2=bb"

  6. :: 设置快捷方式名称
  7. set "shortcut_name1=aa.lnk"
  8. set "shortcut_name2=bb.lnk"

  9. :: 设置目标路径的固定部分
  10. set "path1=C:\Program Files\Adobe"
  11. set "path2=Scripts\Scripts Panel"

  12. :: 查找Adobe InDesign文件夹
  13. set "indesign_folder="
  14. for /d %%a in ("%path1%\Adobe InDesign*") do (
  15.     set "indesign_folder=%%a"
  16.     goto :found
  17. )

  18. :found
  19. if "%indesign_folder%"=="" (
  20.     echo 错误: 未找到文件夹!
  21.     goto :end
  22. )

  23. :: 组合完整目标路径
  24. set "target_path=%indesign_folder%\%path2%"

  25. :: 检查路径是否存在
  26. if not exist "%target_path%" (
  27.     echo 错误: 目标路径 "%target_path%" 不存在!
  28.     goto :end
  29. )

  30. :: 创建第一个快捷方式
  31. echo 创建快捷方式 "%shortcut_name1%" 指向 "%source1%"...
  32. powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%shortcut_name1%'); $Shortcut.TargetPath = '%CD%\%source1%'; $Shortcut.Save()"

  33. :: 创建第二个快捷方式
  34. echo 创建快捷方式 "%shortcut_name2%" 指向 "%source2%"...
  35. powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%shortcut_name2%'); $Shortcut.TargetPath = '%CD%\%source2%'; $Shortcut.Save()"

  36. :: 复制快捷方式到目标路径
  37. echo 复制快捷方式到 "%target_path%"...
  38. copy /Y "%shortcut_name1%" "%target_path%"
  39. copy /Y "%shortcut_name2%" "%target_path%"

  40. echo 操作完成,按任意键退出!

  41. :end
  42. endlocal

  43. :: 按任意键结束
  44. pause>nul   
复制代码
放在 aa  bb 目录下运行就行

来自doubao
 楼主| 发表于 2025-6-21 14:12:48 | 显示全部楼层

非常感谢
但这不确定,这是我的电脑上的。因为要用到别人电脑上,别人可能还有其他的,但都是Adobe家族的。
Adobe Creative Cloud Experience
Acrobat DC
Adobe Photoshop 2024
Adobe Illustrator 2024
Adobe Premiere Pro 2024
Adobe After Effects 2024
Adobe Lightroom 2024
Adobe InDesign 2024
Adobe Audition 2024

及不同年份的,比如还有
Adobe Photoshop 2025
Adobe Photoshop 2020
Adobe Illustrator 2020
Adobe InDesign 2025
 楼主| 发表于 2025-6-21 15:27:17 | 显示全部楼层
放在 aa  bb 目录下运行就行

来自doubao
wallat 发表于 2025-6-21 14:04 放在 aa  bb 目录下运行就行


成攻了,但有乱码及错误提示。能优化吗
非常感谢。
发表于 2025-6-21 16:12:06 | 显示全部楼层
回复 5# ednykissyou


   批处理保存为ansi编码。
发表于 2025-6-21 16:12:57 | 显示全部楼层
  1. @echo off
  2. rem 保存为ansi编码
  3. cd /d "%~dp0"
  4. set list="aa" "bb"
  5. for /f "delims=" %%i in ('dir /b /s /ad "C:\Program Files\Adobe\Scripts Panel*" ^|find /i "\Scripts\Scripts Panel"') do (
  6.         if /i "%%~nxi" equ "Scripts Panel" (
  7.                 for %%a in (%list%) do (
  8.                         rem "http://www.bathome.net/redirect.php?goto=findpost&ptid=11050&pid=70331"
  9.                         mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut("^
  10.                         "%%i\%%~nxa.lnk""):b.TargetPath=""%%~fa"":b.WorkingDirectory=""%%~dpa"":b.Save:close"^)
  11.                 )
  12.         )
  13. )
  14. pause
复制代码
 楼主| 发表于 2025-6-21 17:53:21 | 显示全部楼层
77七 发表于 2025-6-21 16:12


感谢,你这个是不是路径没找对,好像没有创建成功
发表于 2025-6-21 18:51:34 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-6-21 20:09 编辑

回复 1# ednykissyou

关键是要匹配出 C:\Program Files\Adobe\ 目录下所有用 Scripts Panel 结尾的子目录名...

  1. @echo off &for %%d in (aa, bb) do if not exist ".\%%d" exit/b
  2. powershell "$ws=New-Object -ComObject WScript.Shell;('aa','bb')|%%{$sc=$ws.CreateShortcut($_+'.lnk');$sc.TargetPath='%CD%\'+$_;$sc.Save();}"
  3. for /f "delims=" %%d in ('dir /b/s/ad "C:\Program Files\Adobe\*Scripts Panel" ') do for %%F in (aa, bb) do copy /y "%%F.lnk" "%%d"
  4. pause&exit/b
复制代码
发表于 2025-6-21 22:07:36 | 显示全部楼层
回复 8# ednykissyou


  右键管理员执行
发表于 2025-6-22 08:40:29 | 显示全部楼层
回复 5# ednykissyou


    另存bat文件时,编码格式选为ANSI
发表于 2025-6-23 08:19:47 | 显示全部楼层
回复 4# ednykissyou


你的这个截图里面既有 Adobe InDesign 2024 也有 Adobe InDesign 2025
需要根据什么条件决定选哪个?
 楼主| 发表于 2025-6-23 14:38:21 | 显示全部楼层
放在 aa  bb 目录下运行就行

来自doubao
wallat 发表于 2025-6-21 14:04

大神你好,能不能先删除C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel下的内容
最好提示一下:将删除Scripts Panel下所有内容

谢谢~
发表于 2025-6-24 13:19:51 | 显示全部楼层
C:\Program Files\Adobe目录下有多个Adobe InDesign文件夹时,目前只能操作识别到的第一个文件夹
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 设置源文件夹名称
  4. set "source1=aa"
  5. set "source2=bb"

  6. :: 设置快捷方式名称
  7. set "shortcut_name1=aa.lnk"
  8. set "shortcut_name2=bb.lnk"

  9. :: 设置目标路径的固定部分
  10. set "path1=C:\Program Files\Adobe"
  11. set "path2=Scripts\Scripts Panel"

  12. :: 查找Adobe InDesign文件夹
  13. set "indesign_folder="
  14. for /d %%a in ("%path1%\Adobe InDesign*") do (
  15.     set "indesign_folder=%%a"
  16.     goto :found
  17. )

  18. :found
  19. if "%indesign_folder%"=="" (
  20.     echo 错误: 未找到Adobe InDesign文件夹!
  21.     goto :end
  22. )

  23. :: 组合完整目标路径
  24. set "target_path=%indesign_folder%\%path2%"

  25. :: 检查路径是否存在
  26. if not exist "%target_path%" (
  27.     echo 错误: 目标路径 "%target_path%" 不存在!
  28.     goto :end
  29. )

  30. :: 删除目标路径下的所有文件和子文件夹
  31. echo 正在删除 "%target_path%" 下的所有文件和文件夹...
  32. rmdir /S /Q "%target_path%" 2>nul
  33. mkdir "%target_path%"

  34. :: 创建第一个快捷方式
  35. echo 创建快捷方式 "%shortcut_name1%" 指向 "%source1%"...
  36. powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%shortcut_name1%'); $Shortcut.TargetPath = '%CD%\%source1%'; $Shortcut.Save()"

  37. :: 创建第二个快捷方式
  38. echo 创建快捷方式 "%shortcut_name2%" 指向 "%source2%"...
  39. powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%shortcut_name2%'); $Shortcut.TargetPath = '%CD%\%source2%'; $Shortcut.Save()"

  40. :: 复制快捷方式到目标路径
  41. echo 复制快捷方式到 "%target_path%"...
  42. copy /Y "%shortcut_name1%" "%target_path%"
  43. copy /Y "%shortcut_name2%" "%target_path%"

  44. echo 操作完成,按任意键退出!

  45. :end
  46. endlocal

  47. :: 按任意键结束
  48. pause>nul
复制代码
回复 13# ednykissyou
 楼主| 发表于 2025-7-6 01:17:02 | 显示全部楼层
回复 14# wallat

感谢大神。
我搜小软件,有这个功能的好像基本没有。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:48 , Processed in 0.021590 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表