我有一堆文件夹,每个文件夹都包含许多指向存在于完全独立文件夹中的 mp3 文件的快捷链接文件。例如:
/rock-mp3-shortcuts
/jazz-mp3-shortcuts
/funk-mp3-shortcuts
我将运行什么命令(或要使用的程序)将所有底层 mp3 文件复制回指向它们的快捷方式的文件夹中。
我基本上想获取每个类型的快捷方式文件夹中的所有文件,然后复制到我的便携式 mp3 播放器中。
我有一堆文件夹,每个文件夹都包含许多指向存在于完全独立文件夹中的 mp3 文件的快捷链接文件。例如:
/rock-mp3-shortcuts
/jazz-mp3-shortcuts
/funk-mp3-shortcuts
我将运行什么命令(或要使用的程序)将所有底层 mp3 文件复制回指向它们的快捷方式的文件夹中。
我基本上想获取每个类型的快捷方式文件夹中的所有文件,然后复制到我的便携式 mp3 播放器中。
这应该有效:
@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”来说是一件痛苦的事情。这就是为什么我们必须在这里使用wmic
和win32_shortcutfile
。
您可以检查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