[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 WHY 于 2019-7-27 20:16 编辑
  1. @echo off
  2. call :getLnkFile "%~dp0"
  3. echo del /q /f /s *.Lnk
  4. pause & exit
  5. :getLnkFile
  6. if not exist "%~1*.Lnk" goto :next
  7. set "p=%~pnx1"
  8. for /f "delims=" %%i in ('wmic Path Win32_ShortCutFile where "Path='%p:\=\\%' and Drive='%~d1' and Extension='Lnk'" get Target /format:Table^|find ":"') do (
  9.     for /f "delims=" %%j in ("%%i") do echo copy "%%~fj" "%~1"
  10. )
  11. :next
  12. for /d %%i in ("%~1*") do call :getLnkFile "%%i\"
复制代码
1

评分人数

TOP

本帖最后由 WHY 于 2019-7-27 18:44 编辑
  1. $obj = New-Object -Com Shell.Application;
  2. forEach( $a In (dir . -Filter *.Lnk -Recurse -File) ){
  3.     $Lnk = $obj.NameSpace($a.DirectoryName).ParseName($a.Name).GetLink;
  4.     cp $Lnk.Target.Path -Dest ($a.DirectoryName+'\') -Force -WhatIf;
  5.     del $a.FullName -Force -WhatIf
  6. }
  7. pause
复制代码

TOP

  1. for /f "delims=" %%i in ('find ":\" *.Lnk ^| findstr /i /b "[a-z]:"') do echo copy "%%i"
复制代码

TOP

回复 6# shiworkstation


    “临门一脚”你自己去踢吧。把 copy、del 前面的命令删掉。

TOP

回复 9# 窄口牛


    "%~dp0" 表示批处理所在的目录,你把它改成其它目录名称,比如:call :getLnkFile "E:\Test\"
那么,批处理放到任意地方都能处理 E:\Test 目录中的 Lnk 文件了。

TOP

返回列表