将lnk文件夹中的文件复制回文件夹

时间:2015-12-15 09:19:39

标签: windows batch-file directory shortcut lnk

我有一堆文件夹,每个文件夹包含许多快捷链接文件,这些文件存在于完全独立的文件夹中的mp3文件中。例如:

/rock-mp3-shortcuts
/jazz-mp3-shortcuts
/funk-mp3-shortcuts

我将运行什么命令(或程序使用)将所有底层mp3文件复制回指向它们的快捷方式文件夹。

我基本上想要获取快捷方式的每个类型文件夹中的所有文件,然后将其复制到我的便携式mp3播放器中。

2 个答案:

答案 0 :(得分:3)

这应该有效:

@echo off
FOR /r %%i in (*.lnk) do call :COPYFILE "%%i"
GOTO:EOF
:COPYFILE
set "filename=%1"
set "filename=%filename:"=%"
set "filename=%filename:\=\\%"
for /f "tokens=1* delims==" %%I in ('wmic path win32_shortcutfile where "name='%filename%'" get target /format:list ^| find "="') do (
    set tatgetFile=%%J
    copy /y "%tatgetFile%"
)

您必须创建一个bat文件并将我的代码粘贴到其中。该文件必须位于所有* .lnk(快捷方式)文件所在的文件夹中。由于你有三个,你必须将蝙蝠复制到每个文件夹并执行一次。您也可以自动执行此操作并仅使用一个蝙蝠,但我想您将自己弄清楚如何执行此操作。它将遍历所有快捷方式并将目标文件复制到当前文件夹。

不幸的是,在cmd中处理快捷方式是'a'中的一个难题。这就是为什么我们必须在这里使用wmicwin32_shortcutfile

答案 1 :(得分:2)

您可以查看可以创建的shortcutJS.bat或查看有关.lnk的信息。您需要在与此代码相同的目录中使用它:

@echo off

setlocal
::set your location on the line bellow
set "mp3_dir=c:\mp3_dir"
pushd "%mp3_dir%"
for /r %%# in (*.lnk) do (

    for /f "tokens=1* delims=: " %%a in ('shortcutJS.bat -examine "%%~f#"^|find /i "target"') do (
        echo location of %%# : %%~fb
        rem !!!!  remove the echo on the line bellow if everything is ok !!!!
        echo copy "%%~fb" "%%~dp#"
    )

)
endlocal