我有一堆文件夹,每个文件夹包含许多快捷链接文件,这些文件存在于完全独立的文件夹中的mp3文件中。例如:
/rock-mp3-shortcuts
/jazz-mp3-shortcuts
/funk-mp3-shortcuts
我将运行什么命令(或程序使用)将所有底层mp3文件复制回指向它们的快捷方式文件夹。
我基本上想要获取快捷方式的每个类型文件夹中的所有文件,然后将其复制到我的便携式mp3播放器中。
答案 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'中的一个难题。这就是为什么我们必须在这里使用wmic
和win32_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