<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8739&amp;type=atom" />
	<updated>2013-10-09T01:50:14Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8739</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75861#p75861" />
			<content type="html"><![CDATA[<p>Спасибо большое, попытаюсь разобраться.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-10-09T01:50:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75861#p75861</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75859#p75859" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А как их объединить?</p></blockquote></div><p>Например, так:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set sArg1=%~1

if not defined sArg1 (
    echo Usage: %~nx0 ^&lt;file1^&gt; [^&lt;file2^&gt; [... ^&lt;fileN^&gt;]]
    endlocal
    exit /b 1
)
    
call :GetAllArgsWithPlus %*
call :GetArgNamesFirstAndLast %*

echo [%AllArgsWithPlus%]
echo [%ArgNamesFirstAndLast%]

endlocal
exit /b 0

:GetAllArgsWithPlus
    setlocal enableextensions enabledelayedexpansion
    
    set sOut=%~0
    
:Repeat1
    set sArg=%~1
    if defined sArg set sResult=%sResult%+%sArg%&amp; shift &amp; goto :Repeat1
    
    rem set sResult=%sResult:~1%
    endlocal &amp; set %sOut:~4%=%sResult:~1%
    exit /b

:GetArgNamesFirstAndLast
    setlocal enableextensions enabledelayedexpansion
    
    set sOut=%~0
    set sArgFirst=%~n1
    
:Repeat2
    set sArgLast=%~n1
    set sArgNext=%~n2
    if defined sArgNext shift &amp; goto :Repeat2
    
    endlocal &amp; set %sOut:~4%=%sArgFirst%-%sArgLast%
    exit /b
</code></pre></div><div class="quotebox"><blockquote><p>И что вы посоветуете почитать,</p></blockquote></div><p>Например, это: <a href="http://forum.script-coding.com/viewtopic.php?id=2887">CMD/BAT: Коллекция ссылок</a>.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-10-09T00:28:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75859#p75859</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75858#p75858" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>И что вы посоветуете почитать, чтоб я хоть что-то понял из вашего кода?</p></blockquote></div><ul><li><p><a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx">Using batch parameters</a></p></li><li><p>Встроенную справку командной строки:</p></li></ul><div class="codebox"><pre><code>
call /?
shift /?</code></pre></div><br /><br /><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>А как их объединить?</p></blockquote></div><p>В переменной?<br /></p><div class="quotebox"><cite>set /? пишет:</cite><blockquote><p>Вывод, задание и удаление переменных среды cmd.exe.</p><p>SET [переменная=[строка]]</p><p>&nbsp; переменная&nbsp; Имя переменной среды.<br />&nbsp; строка&nbsp; &nbsp; &nbsp; Строка символов, присваиваемая указанной переменной.</p><p><strong>. . .</strong></p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Мальчик-гей]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30832</uri>
			</author>
			<updated>2013-10-08T22:51:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75858#p75858</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75853#p75853" />
			<content type="html"><![CDATA[<p>Спасибо!<br />А как их объединить?<br />И что вы посоветуете почитать, чтоб я хоть что-то понял из вашего кода?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-10-08T18:46:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75853#p75853</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75851#p75851" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>через плюсы</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set sAllArgsWithPlus=

:Repeat
set sArg=%~1
if defined sArg set sAllArgsWithPlus=%sAllArgsWithPlus%+%sArg%&amp; shift &amp; goto :Repeat

set sAllArgsWithPlus=%sAllArgsWithPlus:~1%

echo [%sAllArgsWithPlus%]

endlocal
exit /b 0
</code></pre></div><div class="quotebox"><blockquote><p>создать переменную, только из названий первого и последнего файла, без их расширения и разделенных дефисом</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set sArgFirst=%~n1

:Repeat
set sArgLast=%~n1
set sArgNext=%~n2
if defined sArgNext shift &amp; goto :Repeat

set sArgNamesFirstAndLast=%sArgFirst%-%sArgLast%

echo [%sArgNamesFirstAndLast%]

endlocal
exit /b 0
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-10-08T18:08:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75851#p75851</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75850#p75850" />
			<content type="html"><![CDATA[<p>А где об этом можно почитать, а то непонятно, как обведенные файлы записывать в переменную через плюсы и как потом создать переменную, только из названий первого и последнего файла, без их расширения и разделенных дефисом?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-10-08T17:09:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75850#p75850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75849#p75849" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Мне надо чтобы в переменную FILE записывались названия файлов, которые я обведу мышкой и перенесу в этот батник.</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set FILE=%*
…</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-10-08T16:39:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75849#p75849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75842#p75842" />
			<content type="html"><![CDATA[<p>Ничего к сожалению не понял.<br />Мне надо чтобы в переменную FILE записывались названия файлов, которые я обведу мышкой и перенесу в этот батник.<br />Я написал на автохотки, то что мне нужно.<br />Как такое повторить в батнике?<br /></p><div class="codebox"><pre><code>n = 0
Loop %0%  ; For each parameter (or file dropped onto a script)
{
   GivenPath := %A_Index%
   Loop %GivenPath%, 1
      FileName%n% = %A_LoopFileName%
   SplitPath, FileName%n%,,,,FileNameNoExt%n%
   n++
}
k := n
n = 0
loop %k%
{
   Names := Names &quot;+&quot; FileName%n%
   n++
}
StringTrimLeft, Names, Names, 1
n := n - 1
RealNames = % FileNameNoExt0 &quot;-&quot; FileNameNoExt%n% &quot;_merged.mp4&quot;
msgbox, % Names
msgbox, % RealNames</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-10-08T10:06:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75842#p75842</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75837#p75837" />
			<content type="html"><![CDATA[<p>Непонятно, что и куда Вы хотите приспособить. Впрочем, вот Вам два варианта:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

echo [%*]
echo.

:Repeat
set sArg=%~1
if defined sArg echo [%sArg%]&amp; shift &amp; goto :Repeat

endlocal
exit /b 0
</code></pre></div><p>приспосабливайте.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-10-08T02:07:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75837#p75837</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Обрабатывать только перетащенные на батник файлы]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=75821#p75821" />
			<content type="html"><![CDATA[<p>Имеется батник:<br /></p><div class="codebox"><pre><code>@echo off
setlocal ENABLEDELAYEDEXPANSION
set FILE=
for %%a in (*.mts) do set FILE=!FILE!+%%a

@echo on
&quot;C:\Program Files (x86)\eac3to\eac3to.exe&quot; %FILE:~1% 1:merged.h264 2:merged.ac3 -log=nul
&quot;C:\Program Files\MP4BOX\mp4box.exe&quot; -add merged.h264 -add merged.ac3 merged.mp4
</code></pre></div><p>Как сделать, так чтобы он обрабатывал не все файлы в директории, а только перенесенные на него мышью?<br />И что дописать, чтобы вместо merged.mp4 была переменная с перенесенными в него файлами формата &quot;название 1-го файла-название последнего файла_merged.mp4 ?<br />Спасибо!</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2013-10-07T02:41:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=75821#p75821</id>
		</entry>
</feed>
