tom*_*pps 2 batch-file shortcut syntax-error
我有一个批处理文件,通过将包含.mp3s的文件夹拖到批处理中来使用.
@echo off
cd %~dp0
setlocal enabledelayedexpansion enableextensions
set FLDR="%1"
if not defined FLDR ( echo Drag a folder to the batch to play its contents.
pause
goto:EOF )
for %%x in (%FLDR%\*.mp3) do set "MP3=!MP3! "%%x""
mp3player %MP3%
pause
Run Code Online (Sandbox Code Playgroud)
它适用于实际文件夹,但在拖动快捷方式时,变量%FLDR%最终为"c:\ link location\folder.lnk"而不是实际的文件夹位置.我不知道如何解决这个问题.
这是一种使用小型混合VBS/Batch文件功能获取目标的方法.
@echo off
setlocal
Call :GetTarget "%~1" tgt
echo %tgt%
pause
exit /b
:GetTarget
@echo off & setlocal
set gt=%temp%\_.vbs
echo set WshShell = WScript.CreateObject("WScript.Shell")>%gt%
echo set Lnk = WshShell.CreateShortcut(WScript.Arguments.Unnamed(0))>>%gt%
echo wscript.Echo Lnk.TargetPath>>%gt%
set script=cscript //nologo %gt%
For /f "delims=" %%a in ( '%script% "%~1"' ) do set target=%%a
del %gt%
endlocal & set %~2=%target%
exit /b
Run Code Online (Sandbox Code Playgroud)