标题: [文件操作] 批处理如何将快捷方式自动替换为原文件? [打印本页]
作者: shiworkstation 时间: 2019-7-27 08:37 标题: 批处理如何将快捷方式自动替换为原文件?
工作中经常出现如下问题,特别麻烦,但是一直不知道怎么办?
因为很多文件夹有相同的内容,指向同一个文件,为了保持同步,所以用快捷方式。某个文件夹,里面有一些真实文件,还有许多快捷方式,如果用批处理将该文件夹下的快捷方式自动替换为原文件。这样就可以打包该文件夹发送老板了。
作者: smss 时间: 2019-7-27 11:11
- mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\应用名称.lnk""):b.TargetPath=""%~dp0相对路径"":b.WorkingDirectory=""%~dp0"":b.Save:close")
复制代码
注意WIN10创建图标需要关闭自带防火墙
作者: WHY 时间: 2019-7-27 12:44
本帖最后由 WHY 于 2019-7-27 20:16 编辑
- @echo off
- call :getLnkFile "%~dp0"
- echo del /q /f /s *.Lnk
- pause & exit
-
- :getLnkFile
- if not exist "%~1*.Lnk" goto :next
- set "p=%~pnx1"
- for /f "delims=" %%i in ('wmic Path Win32_ShortCutFile where "Path='%p:\=\\%' and Drive='%~d1' and Extension='Lnk'" get Target /format:Table^|find ":"') do (
- for /f "delims=" %%j in ("%%i") do echo copy "%%~fj" "%~1"
- )
-
- :next
- for /d %%i in ("%~1*") do call :getLnkFile "%%i\"
复制代码
作者: WHY 时间: 2019-7-27 12:47
本帖最后由 WHY 于 2019-7-27 18:44 编辑
- $obj = New-Object -Com Shell.Application;
- forEach( $a In (dir . -Filter *.Lnk -Recurse -File) ){
- $Lnk = $obj.NameSpace($a.DirectoryName).ParseName($a.Name).GetLink;
- cp $Lnk.Target.Path -Dest ($a.DirectoryName+'\') -Force -WhatIf;
- del $a.FullName -Force -WhatIf
- }
- pause
复制代码
作者: WHY 时间: 2019-7-27 18:46
- for /f "delims=" %%i in ('find ":\" *.Lnk ^| findstr /i /b "[a-z]:"') do echo copy "%%i"
复制代码
作者: shiworkstation 时间: 2019-7-27 19:34
回复 3# WHY
bat运行了,界面显示的东西都对,但是退出后什么操作也没有进行,不知道怎么回事,就差临门一脚了。
作者: WHY 时间: 2019-7-27 20:21
回复 6# shiworkstation
“临门一脚”你自己去踢吧。把 copy、del 前面的命令删掉。
作者: shiworkstation 时间: 2019-7-27 20:26
回复 7# WHY
谢谢,已经搞定了,非常感谢!
作者: 窄口牛 时间: 2019-8-11 06:48
回复 3# WHY
不把它放入目录该怎么改?能否赐教?
我弄了个echo它到目标目录并增加删除自身,然后再start它,也能解决了问题。
作者: WHY 时间: 2019-8-11 20:12
回复 9# 窄口牛
"%~dp0" 表示批处理所在的目录,你把它改成其它目录名称,比如:call :getLnkFile "E:\Test\"
那么,批处理放到任意地方都能处理 E:\Test 目录中的 Lnk 文件了。
作者: 窄口牛 时间: 2019-8-11 20:20
好的,我再理解理解。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |