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

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

[复制链接]
发表于 2025-7-8 00:57:04 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-7-8 01:02 编辑

回复 57# ednykissyou [/

为何一定要获取aa,bb这两个相对路径的全路径》
对批处理编程而言,给定相对路径名去求取其全路径的方法,或是从其根目录遍历,或是它本直属当前目录,前者不一定有唯一解,而后者可有唯一解,因此所谓的a,b两个相对目录名的全路径抓取就是靠批处理脚本与a,b同目录这个前提条件来保证的。之所以要取全路径只因快㨗方式要求定义全路径而不接受相对路径,即使给一个不真实的全路径都不行,否则创建的就是不可识别的快㨗方式。本帖转来绕去,其实就是两点,一是要开启管理员权限
以便复制快㨗方式到受保护目录,二是用相对路径名抓取全路径以
便创建快㨗方式,此二者也就是最后几版代码的解法支点。
 楼主| 发表于 2025-7-25 10:47:10 | 显示全部楼层
回复  ednykissyou


复制36楼代码的第25-32行,放在56楼代码 第9、10行之间
77七 发表于 2025-7-7 22:10


我想删除下边Script录目下的所有内容,并将Script设为只读,禁止再写入其他内容 (我现在手动删除Script下的内容,并将Script设为只读,但软件重启后,还是又
这里有一个问题。用户名olo也是不确定的,并不是在我的电脑上执行。
set "folder2=C:\Users\olo\AppData\Roaming\Adobe\InDesign\Version 19.0-J\zh_CN\Scripts\"

非常感谢。
我现在的完整代码是这样的:
  1. @echo off & FLTMC>nul||(mshta vbscript:CreateObject^("Shell.Application"^).ShellExecute^("%~snx0"," %*","","runas",1^)^(window.close^)&&exit /b)
  2. rem 保存为ansi编码
  3. cd /d "%~dp0"
  4. rem 需要的快捷方式路径
  5. set list="C常用" "Tab"
  6. set "folder=C:\Program Files\Adobe\Adobe InDesign 2024\Scripts\Scripts Panel"

  7. for /f "delims=" %%i in ("%folder%.") do (
  8.                                 echo 将删除 目录[%%i] 下所有文件(包括子目录)
  9.                                 choice /m "确认请按 Y,否请按 N"
  10.                                 if errorlevel 1 (
  11.                                         if not errorlevel 2 (
  12.                                                 rd /s /q "%%i"
  13.                                                 md "%%i"
  14.                                         )
  15.                                 )

  16.         for %%a in (%list%) do (
  17.                 if exist "%%~a" (
  18.                         echo 正在创建快捷方式 [%%~a]
  19.                         mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut("^
  20.                         "%%~fi\%%~nxa.lnk""):b.TargetPath=""%%~fa"":b.WorkingDirectory=""%%~dpa"":b.Save:close"^)
  21.                         if exist "%%i\%%~nxa.lnk" (
  22.                                 echo 操作成功
  23.                         ) else (
  24.                                 echo 操作失败
  25.                         )
  26.                 ) else (
  27.                         echo 未找到 [%%~a] ,请检查路径
  28.                 )
  29.         )
  30. )
  31. pause
复制代码
发表于 2025-7-25 20:46:27 | 显示全部楼层
回复 62# ednykissyou


  
  1. @echo off
  2. set "folder2=C:\Users\%username%\AppData\Roaming\Adobe\InDesign\Version 19.0-J\zh_CN\Scripts"
  3. for /f "delims=" %%i in ("%folder2%.") do (
  4.         if exist "%%~fi" (
  5.                 rd /s /q "%%~fi"
  6.                 md "%%~fi"
  7.                 icacls "%%~fi" /deny everyone:(OI^)(CI^)(WD,AD^)
  8.         ) else (
  9.                 echo 目录[%%~fi] 不存在
  10.         )
  11. )
  12. pause
复制代码
 楼主| 发表于 2025-7-27 09:58:41 | 显示全部楼层
本帖最后由 ednykissyou 于 2025-7-27 10:09 编辑

回复 63# 77七
非常感谢。

我干错了,放入了前段代码的倒数第一个括号前,把当前目录下所有东西,包括这个脚本本身都删了。
还好我备份,差点酿成悲剧。

论备份的重要性……再论没事别折腾电脑的重要性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:54 , Processed in 0.016925 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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