3

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

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

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

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

4

2 回答 2

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(快捷方式)文件所在的文件夹中。由于您拥有其中三个,因此您必须将 bat 复制到每个文件夹并执行一次。您也可以自动执行此操作并仅使用一个球棒,但我想您会自己弄清楚如何做到这一点。它将遍历所有快捷方式并将目标文件复制到当前文件夹。

不幸的是,在 cmd 中处理快捷方式对于“a”来说是一件痛苦的事情。这就是为什么我们必须在这里使用wmicwin32_shortcutfile

于 2015-12-15T10:15:18.447 回答
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
于 2015-12-15T10:27:35.353 回答