.bat встановити змінну відповідно до Multi draged and drop файлів


0

Як я можу встановити змінні у моєму файлі .bat відповідно до файлу, що випав?

Set file=C:\files\movie.mp4
Set folder=C:\files\

Я хочу це змінити, тому коли я перетягнув файл і перекинув його в .bat зміни змінної файлу перетягнуть шлях до файлу, а зміни папки - у батьківський каталог файлів.

Це можливо?

EDIT : Вищезазначена проблема була вирішена завдяки Keltari & DavidPostill

Тепер я зіткнувся з проблемою, коли я скинув кілька файлів на .bat. Він виконує лише перший файл і не торкається решти. Хоча це спрацьовує, якщо я кидаю файли по одному.

Що потрібно змінити, щоб воно працювало?

Мій код є

SET file=%~1
SET folder=%~dp1

ffmpeg -y -ss 120 -i "%file%" -an -c copy -bsf:v h264_mp4toannexb -f mpegts -t 00:00:010 "%folder%prev001.ts"
ffmpeg -y -ss 300 -i "%file%" -an -c copy -bsf:v h264_mp4toannexb -f mpegts -t 00:00:010 "%folder%prev002.ts"
ffmpeg -y -ss 600 -i "%file%" -an -c copy -bsf:v h264_mp4toannexb -f mpegts -t 00:00:010 "%folder%prev003.ts"

Я не думаю, що консольні програми підтримують функцію перетягування, принаймні за замовчуванням.

Відповіді:


1

Цей пост у StackOverflow розкриває, як це зробити:

Перетягування погано реалізовано для пакетних файлів. Імена цитуються, якщо пробіл присутній, але не, якщо знайдено спеціальний символ, як &,; ^

Для пробілів лише у ваших іменах потрібно лише трохи змінити код.

@ECHO OFF
ECHO "%~1"
COPY "%~1" "%CD%\test\" /Y /S 
REN "%CD%\mob\*.png" "%CD%\test\test.png"
7za u -tzip "%appdata%\.virto\pack.zip" "test" -r

%~1 завжди розширюється до котируваної версії, тому завжди можна цитувати їх у безпечний спосіб.

"c:\Docs and sets" -> %~1 -> c:\Docs and sets -> "%~1" -> "c:\Docs and sets" c:\Programs -> %~1 -> c:\Programs -> "%~1" -> "c:\Programs"


Спасибі за вашу допомогу. Сподіваючись, що ви можете допомогти з новою проблемою, з якою я стикаюся зараз. Повідомлення відредаговано. Заздалегідь спасибі.
користувач2132188

@ user2132188, Можливо, це може вам допомогти.
MC ND
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.