<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: некоторые документированные особенности использования масок]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=4491</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=4491&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: некоторые документированные особенности использования масок».]]></description>
		<lastBuildDate>Tue, 21 Jun 2011 10:47:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: некоторые документированные особенности использования масок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=49281#p49281</link>
			<description><![CDATA[<p>Ну и и для полноты темы. Отключение создания коротких имен:<br /></p><div class="codebox"><pre><code>Установить значение ключа реестра (REG_DWORD)
HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation = 1</code></pre></div><p>Что эквивалентно запуску утиилиты <a href="http://www.windowsfaq.ru/content/view/165/57/">Fsutil</a> вот так вот:<br /></p><div class="codebox"><pre><code>fsutil behavior set 8dot3name 1</code></pre></div><p>+ перезагрузка.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Tue, 21 Jun 2011 10:47:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=49281#p49281</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: некоторые документированные особенности использования масок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=49279#p49279</link>
			<description><![CDATA[<div class="quotebox"><cite>smaharbA пишет:</cite><blockquote><p>справедливо, если не отключены короткие имена</p></blockquote></div><p>Угу:<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Если файловая система на диске «C:» — NTFS, и политикой не отключено формирование коротких имён файлов «8.3»…</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 21 Jun 2011 10:26:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=49279#p49279</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: некоторые документированные особенности использования масок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=49278#p49278</link>
			<description><![CDATA[<p>справедливо, если не отключены короткие имена</p><p>исследование полезное</p>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Tue, 21 Jun 2011 10:08:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=49278#p49278</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: некоторые документированные особенности использования масок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=44080#p44080</link>
			<description><![CDATA[<p>Продолжение эпопеи — <a href="http://forum.oszone.net/thread-197076.html">Ошибка при использовании xcopy для копирования файлов с расширением более 3 символов</a>:<br /></p><div class="quotebox"><cite>megaloman пишет:</cite><blockquote><p>Пусть у нас есть 3 файла<br /></p><div class="codebox"><pre><code>f.ab
f.abc
f.abcd</code></pre></div><p>Напишем:<br /></p><div class="codebox"><pre><code>xcopy *.ab uuu\</code></pre></div><p>Скопируется 1 файл «f.ab»<br />Напишем:<br /></p><div class="codebox"><pre><code>xcopy *.abc uuu\</code></pre></div><p>Скопируется 2 файла: «f.abc» и «f.abcd».</p><p>Очередной баг?</p></blockquote></div><div class="quotebox"><cite>amel27 пишет:</cite><blockquote><p>Они подходят по короткому имени (DIR/X), вроде уже обсуждали тут: <a href="http://forum.oszone.net/showthread.php?t=175758">CMD/BAT - [решено] Пакетный файл для выборки из спика файлов текстовый(название и описание)</a></p></blockquote></div><p>Действительно, короткие имена выглядят так:<br /></p><div class="codebox"><pre><code>f.ab
f.abc
F0AD2~1.ABC</code></pre></div><p>с соответствующими результатами.</p><p>У кого есть в одной папке одновременно документы старого формата «*.doc» и нового «*.docx» — выложите сюда результат:<br /></p><div class="codebox"><pre><code>dir *.doc</code></pre></div><p>и<br /></p><div class="codebox"><pre><code>dir /x *.doc</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 20 Jan 2011 05:27:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=44080#p44080</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: некоторые документированные особенности использования масок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=35896#p35896</link>
			<description><![CDATA[<p>Скорее всего, для большинства сие будет далеко не новость.</p><p><em>Посыл:</em> <a href="http://forum.oszone.net/post-1415220.html#post1415220">CMD/BAT - [решено] Пакетный файл для выборки из спика файлов текстовый(название и описание)</a>.</p><p><em>Предисловие:</em> Создаём на диске «C:» папку «0001». Создаём в ней (для воспроизведения взяты имена файлов с оригинального обсуждения) файлы:<br /></p><div class="codebox"><pre><code>aaaa.bat
bbb
Финуправления в .doc
Финуправления в Интернете.doc
Финуправления в.doc
Финуправления.doc</code></pre></div><p><em>Можно воспользоваться следующим пакетным файлом:</em><br /></p><div class="codebox"><pre><code>@echo off
setlocal

set sPath=c:\0001

md &quot;%sPath%&quot;

copy nul &quot;%sPath%\aaaa.bat&quot; &gt;nul
copy nul &quot;%sPath%\bbb&quot; &gt;nul
copy nul &quot;%sPath%\Финуправления в .doc&quot; &gt;nul
copy nul &quot;%sPath%\Финуправления в Интернете.doc&quot; &gt;nul
copy nul &quot;%sPath%\Финуправления в.doc&quot; &gt;nul
copy nul &quot;%sPath%\Финуправления.doc&quot; &gt;nul

endlocal
exit /b 0</code></pre></div><p><em>Собственно, обсуждение:</em> Если файловая система на диске «C:» — NTFS, и политикой не отключено формирование коротких имён файлов «8.3», то команда «dir»:<br /></p><div class="codebox"><pre><code>dir a*.*</code></pre></div><p>выдаст не совсем ожидаемый результат:<br /></p><div class="codebox"><pre><code> Содержимое папки C:\0001

18.05.2010  22:13                 0 Финуправления в Интернете.doc
18.05.2010  22:13                 0 aaaa.bat
18.05.2010  22:13                 0 Финуправления в .doc
               3 файлов              0 байт</code></pre></div><p>В данном случае (да и в прочих, о коих речь пойдёт ниже, тоже), похоже, следует винить функцию <a href="http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx">FindFirstFile Function (Windows)</a>:<br /></p><div class="quotebox"><blockquote><p><strong>Remarks</strong><br />…<br />The following list identifies some other search characteristics:<br />…<br />* The search includes the long and short file names.<br />…</p></blockquote></div><p>То бишь, в поиск включаются как длинные, так и короткие имена файлов. В данном конкретном примере короткие имена:<br /></p><div class="codebox"><pre><code>dir /x</code></pre></div><div class="codebox"><pre><code> Содержимое папки C:\0001

18.05.2010  22:13                 0              aaaa.bat
18.05.2010  22:13                 0              bbb
18.05.2010  22:13                 0 ABF5~1.DOC   Финуправления в .doc
18.05.2010  22:13                 0 A5BF~1.DOC   Финуправления в Интернете.doc
18.05.2010  22:13                 0 06EE~1.DOC   Финуправления в.doc
18.05.2010  22:13                 0 67E2~1.DOC   Финуправления.doc
               6 файлов              0 байт</code></pre></div><p>Аналогичное поведение можно наблюдать и в случае команды «del» (параметр «/p» добавлен для подтверждения):<br /></p><div class="codebox"><pre><code>del /p a*.*</code></pre></div><div class="codebox"><pre><code>C:\0001\Финуправления в Интернете.doc, Удалить [Y(да)/N(нет)]? n
C:\0001\aaaa.bat, Удалить [Y(да)/N(нет)]? n
C:\0001\Финуправления в .doc, Удалить [Y(да)/N(нет)]? n</code></pre></div><p>и в случае команды «copy»:<br /></p><div class="codebox"><pre><code>copy a*.* c:\0002\</code></pre></div><div class="codebox"><pre><code>Финуправления в Интернете.doc
aaaa.bat
Финуправления в .doc
Скопировано файлов:         3.</code></pre></div><p>и даже при использовании отбора «for…»:<br /></p><div class="codebox"><pre><code>for %i in (a*.*) do @echo.[%i]</code></pre></div><div class="codebox"><pre><code>[Финуправления в Интернете.doc]
[aaaa.bat]
[Финуправления в .doc]</code></pre></div><p>Вот так.</p><p>По тем же принципам ведётся поиск при использовании в маске «?», например:<br /></p><div class="codebox"><pre><code>dir ??e???.???</code></pre></div><div class="codebox"><pre><code> Содержимое папки C:\0001

18.05.2010  22:13                 0 Финуправления в.doc
18.05.2010  22:13                 0 Финуправления.doc
               2 файлов              0 байт</code></pre></div><p>Столь же плачевно выглядит использование масок в «FileSystemObject» в WSH:<br /></p><div class="codebox"><pre><code>Dim objFSO, objFile

Set objFSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)

WScript.Echo &quot;Before&quot;
For Each objFile In objFSO.GetFolder(&quot;c:\0001&quot;).Files
    WScript.Echo objFile.Name
Next

objFSO.DeleteFile &quot;c:\0001\a*.*&quot;

WScript.Echo
WScript.Echo &quot;After&quot;
For Each objFile In objFSO.GetFolder(&quot;c:\0001&quot;).Files
    WScript.Echo objFile.Name
Next</code></pre></div><div class="codebox"><pre><code>Before
aaaa.bat
bbb
Финуправления в .doc
Финуправления в Интернете.doc
Финуправления в.doc
Финуправления.doc

After
bbb
Финуправления в.doc
Финуправления.doc</code></pre></div><p>равно как и в AutoIt, и в AHK (код не привожу).</p><p>В конце приведу, для наглядности, как выглядит содержимое каталога с этими файлами в Far Manager при отображении длинных и коротких имён:<br /></p><div class="codebox"><pre><code>&amp;#9556;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552; C:\0001 &amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9559;&amp;#9556;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552; C:\0001 &amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;23:11
&amp;#9553;и                 Имя                   &amp;#9474;Размер&amp;#9474;  Дата  &amp;#9474;Время&amp;#9553;&amp;#9553;и                 Имя                  &amp;#9474;Размер&amp;#9474;  Дата  &amp;#9474;Время&amp;#9553;
&amp;#9553; ..                                     &amp;#9474; Вверх&amp;#9474;18.05.10&amp;#9474;23:09&amp;#9553;&amp;#9553; ..                                    &amp;#9474; Вверх&amp;#9474;18.05.10&amp;#9474;23:09&amp;#9553;
&amp;#9553;&amp;#9658;aaaa                                bat&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9619;&amp;#9553;&amp;#9658;aaaa                               bat&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9619;
&amp;#9553; bbb                                    &amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;&amp;#9553; bbb                                   &amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;
&amp;#9553; Финуправления                       doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;&amp;#9553; 67e2~1                             doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;
&amp;#9553; Финуправления в                     doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;&amp;#9553; 06ee~1                             doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;
&amp;#9553; Финуправления в .                   doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;&amp;#9553; abf5~1                             doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;
&amp;#9553; Финуправления в Интернете           doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;&amp;#9553; a5bf~1                             doc&amp;#9474;     0&amp;#9474;18.05.10&amp;#9474;22:13&amp;#9617;
&amp;#9553;                                        &amp;#9474;      &amp;#9474;        &amp;#9474;     &amp;#9617;&amp;#9553;                                       &amp;#9474;      &amp;#9474;        &amp;#9474;     &amp;#9617;</code></pre></div><p>P.S. Как я сам, лично, за четырнадцать лет пользования NTFS не вляпался на этом — для меня загадка.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 18 May 2010 19:26:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=35896#p35896</guid>
		</item>
	</channel>
</rss>
