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

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

[复制链接]
发表于 2025-7-6 12:24:43 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-6 13:01 编辑

回复 13# ednykissyou

    回看了本帖,楼主的要求渐明,可试试以下代码 》
    一。先查找 C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel 目录是否存在,若是,提示是否删除其中全部内容...  
    二。继续查找包含 ...\Adobe InDesign 202x\...\*Scripts Panel 各年度版本的目标目录,并将创建完成的 aa.lnk, bb.lnk 快捷方式复制到每个目标目录中...
    代码第一行定义 aa, bb 文件夹所在的目录,预设值为 Dab=d:\ab 可由楼主改为真实目录。

  1. @echo off &setlocal &set "Dab=d:\ab"
  2. powershell "$ws=new-object -comobject wscript.shell;('aa','bb')|%%{$sc=$ws.createshortcut($_+'.lnk');$sc.targetpath='%Dab%\'+$_;$sc.save()}"
  3. if not exist "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" goto :next
  4. set/p "r=将删除 C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel 中的全部内容(1=是,0=否):"
  5. if %r% neq 1 goto :next
  6. del /q "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel\*.*"
  7. pushd "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel"
  8. rd /q /s "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" 2>nul
  9. popd
  10. :next
  11. for /f "delims=" %%d in ('dir /b/s/ad "C:\Program Files\Adobe\*Scripts Panel"^|findstr /irc:"Adobe InDesign 202[0-9]" ') do for %%F in (aa, bb) do copy /y "%%F.lnk" "%%d"
  12. pause&exit/b
复制代码
 楼主| 发表于 2025-7-6 22:41:23 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-6 22:43 编辑
C:\Program Files\Adobe目录下有多个Adobe InDesign文件夹时,目前只能操作识别到的第一个文件夹回复  edny ...
wallat 发表于 2025-6-24 13:19


你好 wallat。
今天我在新的电脑上用,发现没有弹出提示,是否删除。
另有一个问题:复制产生的 aa bb好像弄丢了快捷方式的扩展名。
变成这样了,它应该不是隐藏了扩展名,因为Indesign软件无法识别它们。我手动拷过去的不是这个样子的
 楼主| 发表于 2025-7-6 22:50:25 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-6 23:02 编辑

回复 16# aloha20200628
你好,你这个也能复制,只是得到的不是文件夹快捷方式,
而是不可识别的快捷方式。跟我说的17楼的问题一样。
另外,aa, bb 文件夹所在的目录这是不确定的,只能是相对路径,可以确定的一点是。目标是可确定的(indesig 2024或2025, 这个我可以整2个批处下,因为将来还会有2026),还有aa bb跟批处理是在同一目录。

非常感谢。

发表于 2025-7-6 23:02:08 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-6 23:12 编辑

回复 18# ednykissyou

16楼代码第一行中的变量 Dab 须改为你的真实完整目录,并确保其中有 aa, bb 这两个子目录,据此生成的相应快捷方式方可生效,有效的快捷方式要求必须定义真实且完整的目标路径,如 d:\abc\xyz,不能是相对路径...
 楼主| 发表于 2025-7-6 23:09:09 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-6 23:11 编辑
回复  ednykissyou

16楼代码第一行中的变量 Dab 须改为你的真实目录,并确保其中有 aa, bb 这两个子目录 ...
aloha20200628 发表于 2025-7-6 23:02



我要复制的两个目录的快捷方式是“C常用”和“Tab”
我现在把aa和bb改为我这两人个名字,得到的还上丢了扩展名的快捷方式。
我查看了它们的属性,目标竟然指向C:\WINDOWS\system32\C常用
 楼主| 发表于 2025-7-6 23:17:48 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-6 23:20 编辑
回复  ednykissyou

16楼代码第一行中的变量 Dab 须改为你的真实完整目录,并确保其中有 aa, bb 这两个子 ...
aloha20200628 发表于 2025-7-6 23:02


我决定不了用户把aa bb放在什么位置。
但他一旦确定放哪里了,那aa bb肯定是有确定位置的,但我们现在不知道。
如果限定用离户只能放某个位置,那这个代码就失去了优越性了。
发表于 2025-7-6 23:24:54 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-6 23:45 编辑

回复 20# ednykissyou

好吧,你把16楼代码第一行的 "Dab=d:\ab" 改为 "Dab=%cd%",再把第二行中的 ('aa','bb') 改为 ('C常用', 'Tab'),把第11行中的 (aa, bb) 改为 (C常用, Tab),再试试吧,批处脚本要与 “C常用” 和 “Tab” 均在同一目录...
发表于 2025-7-6 23:49:39 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-6 23:58 编辑

回复 21# ednykissyou

给 22 楼订正作了修改代码第11行的补遗,请一并修改 ...

如果按以上修改能使16楼代码顺利通过,其后只要把子目录 a,b 的真实值(全路径)作为批处脚本运行的用户输入参数就可以了...
 楼主| 发表于 2025-7-6 23:56:31 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-7 00:04 编辑
回复  ednykissyou

好吧,你把16楼代码第一行的 "Dab=d:\ab" 改为 "Dab=%cd%",再把第二行中的 ('aa',' ...
aloha20200628 发表于 2025-7-6 23:24



对不起,刚有事没来得及回。
一样的,还是指向了C盘 system32下了
  1. @echo off &setlocal &set "Dab=%cd%"
  2. powershell "$ws=new-object -comobject wscript.shell;('C常用','Tab')|%%{$sc=$ws.createshortcut($_+'.lnk');$sc.targetpath='%Dab%\'+$_;$sc.save()}"
  3. if not exist "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" goto :next
  4. set/p "r=将删除 C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel 中的全部内容(1=是,0=否):"
  5. if %r% neq 1 goto :next
  6. del /q "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel\*.*"
  7. pushd "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel"
  8. rd /q /s "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" 2>nul
  9. popd
  10. :next
  11. for /f "delims=" %%d in ('dir /b/s/ad "C:\Program Files\Adobe\*Scripts Panel"^|findstr /irc:"Adobe InDesign 202[0-9]" ') do for %%F in (C常用, Tab) do copy /y "%%F.lnk" "%%d"
  12. pause&exit/b
复制代码
发表于 2025-7-7 00:01:43 | 显示全部楼层
回复 24# ednykissyou

原来如此,是 C:\Program Files 这个目录被系统写保护了...
 楼主| 发表于 2025-7-7 00:03:51 | 显示全部楼层
回复  ednykissyou

原来如此,是 C:\Program Files 这个目录被系统写保护了...
aloha20200628 发表于 2025-7-7 00:01



    可是手动可拷入的。不会提示需要特殊权限
发表于 2025-7-7 00:19:41 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-7 10:47 编辑

回复 26# ednykissyou

应该用cmd管理员窗口运行16楼批处脚本,没错!(否则后续要直接复制快捷方式到 C:\Program Files\... 目标目录就有问题),但开启cmd管理员窗口后的当前目录被默认转到 c:\windows\system32 了,所以你要用 cd /d ... 命令再转到批处脚本和a,b所同在的目录就是了... 祝你成功! 再试试吧...
 楼主| 发表于 2025-7-7 00:26:20 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-7 00:30 编辑
回复  ednykissyou

应该用cmd管理员窗口运行16楼批处脚本,没错!,但开启cmd管理员窗口后的当前目录被 ...
aloha20200628 发表于 2025-7-7 00:19


不是很明白。
关键是我不会,大神你再帮一把。

不过我猜这句应先取得当前路径
@echo off &setlocal &set "Dab=%cd%"
发表于 2025-7-7 00:34:09 | 显示全部楼层
回复 28# ednykissyou

照以下步骤》先开启cmd管理员窗口,在命令行上直接运行 cd /d d:\abc,其中 d:\abc 假设就是批处脚本和 a, b 同在的那个目录,然后在此运行批处脚本即可....
不能在系统 “禁区” c:\windows\system32 目录下运行批处脚本的!
 楼主| 发表于 2025-7-7 00:41:27 | 显示全部楼层
回复  ednykissyou

照以下步骤》先开启cmd管理员窗口,在命令行上直接运行 cd /d d:\abc,其中 d:\abc  ...
aloha20200628 发表于 2025-7-7 00:34



    这就老火了,这个脚本不是我用,是其他人用,其他人顶多只会右击管理员身份运行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:30 , Processed in 0.021107 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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