2014-12-04 4 views
0

Я использую конвертер для многих файлов. Обычно я просто делаю это один за другим, но это требует времени. Я хочу, чтобы иметь возможность выбрать несколько файлов с CTRL + LЩелкните на кнопке правой кнопкой мыши, отправь batch.cmd, который затем запускает этот код:Выберите несколько файлов, «отправьте на» batch.cmd, пусть batch.cmd запустит программу для выбранных файлов

"cmd /c dewssdos -P @file" 

@file быть один файл из «отправить в» список.

Но я не знаю, как это сделать. Я не знаю, как в Windows хранится список файлов, которые я только что отправил, и как получить доступ к этому списку.

http://technet.microsoft.com/en-us/library/bb490909.aspx

Это, кажется, как-то связаны, но я код нуб и понятия не имеют, что делать здесь.

Можете ли вы, ребята, помочь мне?

Спасибо тонну!

+0

способ имитировать действие правой кнопкой мыши - vbscript/jscript -> shell.application -> invokeverb. – npocmaka

ответ

1

Если вы поместите несколько файлов с «отправкой» в пакетный файл, этот командный файл получит список имен файлов. Вы можете разделить их довольно легко:

for %%i in (%*) do echo %%i 

%* означает "все параметры"

Редактировать Ваши комментарии:

переменная %%i действительна только в пределах for контекста. Этот контекст заканчивается NewLine. У вас есть две возможности, чтобы обойти это:

а) установить переменную (работает только для первой (или только) переменной):

for %%i in (%*) do set var=%%i 
REM %%i is not valid anymore here 
echo %var% 
D:\Spiele\Steam\SteamApps\common\Arma 3 Tools\Audio\WAVToWSS.exe" %var% 
DEL %var% 

б) расширяют for контекст:

for %%i in (%*) do (
    echo %%i 
    if /i "%%~xi" == ".wav" D:\Spiele\Steam\SteamApps\common\Arma 3 Tools\Audio\WAVToWSS.exe" %var% && del %%i 
    if /i "%%~xi" == ".wss" D:\Spiele\Steam\SteamApps\common\Arma 3 Tools\Audio\WAVToWSS.exe" %var% && del %%i 
) 
REM %%i is not valid anymore here 

&& работает как «если предыдущая команда была успешной». Поэтому файлы должны быть удалены, только если преобразование было успешным.

+0

Спасибо! Иисус Христос, это спасает меня от некоторых учителей !!! : D Вот мой окончательный код: для %% я в (% *) делать CMD/с dewssdos -P %% я Теперь я счастлив, что dewssdos является «зарегистрирован» с ЦМД, так что я могу легко запустить его. Что делать, если я хочу запустить пользовательскую программу в этих файлах? Например, путь к программе: P: \ Audio \ WavToWss.exe и я хочу использовать параметр «-stereo». Как это сделать? Спасибо, TON, это очень помогает! –

+0

для %% i in (% *) do p: \ Audio \ WavToWss.exe %% i Хорошо работает, добавив параметр после того, как он тоже будет работать, верно? Кажется ... Если у меня возникнут проблемы, я вернусь за помощью! Спасибо огромное!:) –

+0

Здравствуйте, Есть ли способ УДАЛИТЬ файл после его запуска через программу? Я пробовал: для %% я в (% *) делать "D: \ Spiele \ Steam \ SteamApps \ Common \ Arma 3 Tools \ Audio \ WAVToWSS.exe" %% я DEL %% я PAUSE но он говорит мне: «% i не удалось найти». Мне, должно быть, что-то не хватает. Я думал, что %% i означает «файл из этого списка». Почему он ищет «% i»? –