|
|
发表于 2025-7-7 10:43:26
|
显示全部楼层
回复 31# ednykissyou
只要在代码第一行定义快捷方式的目标目录 a, b 的全路径名就省事多了,无论在已打开的管理员CMD窗口中运行,还是直接用右键管理员身份启运批处脚本均可...
关键是运行批处脚本之前要把第一行中的 set "Da=d:\xyz\a" &set "Db=d:\xyz\b" 改为 a, b 的真实完整路径!
订正的代码如下
- @echo off &setlocal &set "Da=d:\xyz\a" &set "Db=d:\xyz\b"
- if "%~1" neq "" set "Da=%~1"
- if "%~2" neq "" set "Db=%~2"
- powershell "$ws=new-object -comobject wscript.shell;('%Da%','%Db%')|%%{$sc=$ws.createshortcut($_+'.lnk');$sc.targetpath=$_;$sc.save()}"
- if not exist "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" goto :next
- set/p "r=将删除 C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel 中的全部内容(1=是,0=否):"
- if %r% neq 1 goto :next
- del /q "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel\*.*"
- pushd "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel"
- rd /q /s "C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel" 2>nul
- popd
- :next
- 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 ("%Da%", "%Db%") do copy /y "%%~F.lnk" "%%d"
- pause&exit/b
复制代码 以上代码亦可用命令行参数定义第一行的变量值 Da, Db,如在CMD管理员窗口中的命令行启运批处脚本(假设其名为 d:\xyz\test.bat)的格式为
- d:\xyz\test.bat "d:\123\a" "d:\123\b"
复制代码 |
|