Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/26: Рейтинг темы: голосов - 26, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85

Нужен батник для сканирования папок и записи результатов в файл HTML (hypertext)

24.08.2013, 00:34. Показов 5617. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь в такой проблеме:
Есть набор папок, в каждой из которых расположены разные файлы (txt/doc/djvu/pdf/..). Нужно, с помощью батника просканировать

эти папки и результаты получить в виде текстовых(html) файлов (по одному на каждую папку и помещенные в отдельную новую

папку) с таким содержимым:

HTML5
1
2
3
4
5
6
7
8
9
10
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Название папки</title>
</head><body>
<h2>Название папки</h2>
<ul>
<li><a href="filepath/filename1.ext">filename1</a></li>
<li><a href="filepath/filename2.ext">filename2</a></li>
..........
<li><a href="filepath/filenameN.ext">filenameN</a></li>
</ul>
</body></html>

P.S.
1. Папки и файлы в приведённом шаблоне на самом деле порядковых номеров не имеют, а имеют различные названия. Их нумерация

приведена только для наглядности.
2. Все папки содержатся в одном общем каталоге
3. возможна иерархия вложений в этих папках.
4. Пути (и ссылки) предполагаются относительными
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2013, 00:34
Ответы с готовыми решениями:

Нужен батник для сканирования сетевой папки
1 .Нужен батник, для копирование сетевой папки \\server\с:\test\updates на \\cliet\d:\updates 2. батник с перво сканировал сетевую папку...

Батник для проверки IP-адреса и записи его в файл
Есть Файл&quot;server.properties&quot;, в нём куча строк. Нужная нам, это server-ip=И наш IP Почти всегда эта строка на шестой строке. Но не всегда. ...

Батник для удаления папок
Всем привет. Столкнулся со следующей проблемой: очень часто после обновлений на 10 винде в корне диска Ц появляются непонятные папки с...

22
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.08.2013, 02:25
ruslaw, забавно Можно заняться.
А как будет выглядеть вложенность в формате HTML? Выделить ведь как-то нужно это дело.
0
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
24.08.2013, 11:18  [ТС]
Примерно так:


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Название папки</title>
</head><body>
<h2>Название папки</h2>
<h3>Название субпапки 1</h3>
<ul>
<li><a href="filepath/filename1.ext">filename1</a></li>
<li><a href="filepath/filename2.ext">filename2</a></li>
..........
<li><a href="filepath/filenameN.ext">filenameN</a></li>
</ul>
<h3>Название субпапки 2</h3>
<ul>
<li><a href="filepath/filenameN+1.ext">filenameN+1</a></li>
<li><a href="filepath/filenameN+2.ext">filenameN+2</a></li>
..........
<li><a href="filepath/filenameN+M.ext">filenameN+M</a></li>
</ul>
</body></html>
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.08.2013, 16:47
Древовидной структуры не видно.
Думаю, какие-то отступы по логике должны быть для вложенных папок. (вот как команда tree)
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
24.08.2013, 17:02
Цитата Сообщение от ruslaw Посмотреть сообщение
Есть набор папок
Цитата Сообщение от ruslaw Посмотреть сообщение
по одному на каждую папку
То есть подразумевается, что пути к всем папкам известны?
Тогда так (файл с путями к папкам - list.txt рядом с батником)
scanfolders.bat
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
md filelists
for /f "usebackq tokens=*" %%A IN ("list.txt") DO (call :scanFolder "%%A")
exit /b
:scanFolder
set fName=%~n1
set fPath=%~1
(
echo.^<html^>^<head^>^<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"^>^<title^>%fName%^</title^>
echo.^</head^>^<body^>
echo.^<h2^>%fName%^</h2^>
echo.^<ul^>
for %%A IN ("%fname%\*.*") DO (
 echo.^<li^>^<a href="%%~fA"^>%%~nxA^</a^>^</li^>
)
echo.^</ul^>
echo.^</body^>^</html^>
)>"filelists\%fName%.html"
exit /b

Пробуем, если я правильно понял
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.08.2013, 17:16
FraidZZ, не из листа: батник должен просканировать с той позиции, где сам лежит (+рекурсивно).
Т.е. смотрим какие рядом папки, и в каждую из них??? раскладываем HTML-файлы с их содержимым.

Цитата Сообщение от ruslaw Посмотреть сообщение
и помещенные в отдельную новую папку
видимо самому придумать префикс нового названия (только не понятно зачем. Выглядит неудобно)
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
24.08.2013, 17:42
Цитата Сообщение от Dragokas Посмотреть сообщение
FraidZZ, не из листа: батник должен просканировать с той позиции, где сам лежит (+рекурсивно)
Это так печально(
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
24.08.2013, 20:26
И здесь наверное,

HTML5
1
charset=cp-866
0
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
24.08.2013, 23:02  [ТС]
FraidZZ, спасибо, но, увы!, у меня код не пошел. Прбовал на своей WinXP SP3 и на Win7
Он создает папку "filelists" но в ней ничего нет .....

Добавлено через 3 минуты
Что касается моей проблемы, то это хранилище электронных книг.
В Основной папке "Folder" (она в корневой директории логического диска) находятся несколько отраслевых папок "Folder1", "Folder2", .... "FolderN" (субпапки 1-го уровня)
В каждой из них файлы и по нескольку субпапок (2-го уровня - Folder11, Folder21, .... FolderNM).
Предполагается, что в основную папку помещается бат-файл, который сгенерирует в ней новую субпапку в которой и будут сформированы htm-файлы. Имя каждого такого файла = имени папки, а содержание отражает содержание папки (в виде вложенных папок и файлов).
Тело htm-файла я уточнил, предполагается перечисление вложенных папок со ссылками на файлы отражающие контент этих папок и файлов со ссылками на эти файлы.

<h2>Folder1</h2>
<ul>
<li><a href="Folder11.htm">Folder11</a></li>
<li><a href="Folder12.htm">Folder12</a></li>
........................................ ....
<li><a href="Folder1X.htm">Folder1X</a></li>
........................................ ....
<li><a href="filepath/filename1.ext">filename1</a></li>
<li><a href="filepath/filename2.ext">filename2</a></li>
..........
<li><a href="filepath/filenameN.ext">filenameN</a></li>
</ul>
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
25.08.2013, 19:35
Вообще-то есть tree, умеющий выводить в html.
2
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
25.08.2013, 21:26  [ТС]
ну там вроде бы только листинг директорий и это консольное приложение, т.е. не очень то удобно
0
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
11.10.2013, 22:19  [ТС]
Нужен батник для сканирования папок и записи результатов в набор html-файлов

Есть основная папка в корне ( G:\kolhoz ) с набором файлов и папок, в каждой из которых расположены разные папки и файлы (txt/doc/djvu/pdf/..) с русскими и английскими именами, пробелами, точками, запятыми, тире. Уровень вложения в основную папку составляет 6.

Нужно, с помощью батника просканировать все эти папки и результаты получить в виде набора html-файлов (по одному на каждую имеющуюся папку - основную и все вложенные - и размещенные в отдельной новой папке на одном уровне) с таким содержимым (пути и ссылки предполагаются относительными, причем за базовый уровень принимается основная папка G:\kolhoz ):

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Название папки</title>
</head><body>
<h2>Название папки</h2>
<ul>
<li><a href="internalfolder1.html" id="internalfolder1">internalfolder1</a></li>
<li><a href="internalfolder2.html" id="internalfolder2">internalfolder2</a></li>
..........
<li><a href="internalfolderN.html" id="internalfolderN">internalfolderN</a></li>
</ul>
<hr>
<ul>
<li><a href="https://www.cyberforum.ru/filepath/filename1.ext1" id="filename1.ext1">filename1</a></li>
<li><a href="https://www.cyberforum.ru/filepath/filename2.ext2" id="filename2.ext2">filename2</a></li>
..........
<li><a href="https://www.cyberforum.ru/filepath/filenameN.extN" id="filenameN.extN">filenameN</a></li>
</ul>
</body></html>
Таким образом получается набор файлов-каталогов со ссылками: для файлов на эти самые файлы, а для папок - на файлы их каталогов. Предполагается, что папка с файлами-каталогами помещается в основную папку (G:\kolhoz), таким образом filepath получается из абсолютного пути минус спереди строку G:\kolhoz\ и минус сзади собственное имя файла.
Помогите пожалуйста!

 Комментарий модератора 
Не размножайте темы !!!


Добавлено через 2 часа 46 минут
В 12, 13 и 15 строках HTML-кода ошибка:
Вместо "https://www.cyberforum.ru/filepath/" читать "../filepath/"
0
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
13.10.2013, 13:46
Лучший ответ Сообщение было отмечено как решение

Решение

ruslaw, я позволил себе отойти от концепции "одна папка - один html" и написал скрипт, который выводит древовидную структуру директорий и их содержимого в один-единственный html. Ссылки на файлы и папки работают (через file://, если не запрещено политиками безопасности), структура папок задана отступами по 1 табу (4 em), кроме того для файлов показывается их размер. Каждая папка - отдельная секция, её можно свернуть\развернуть кликом по имени папки. Вёрстка кроссбраузерная, за исключением, пожалуй, IE (его принципиально не поддерживаю) Пример сгенерированного html можете глянуть здесь или на скриншоте ниже.

http://rghost.ru/49345647/thumb.png

Сам код:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
@Echo Off
SetLocal EnableDelayedExpansion
:: # 
:: # HTMLTree v0.2
:: # Inquisitor, 2013
:: # Ad majorem Olanet gloriam
:: # Distributed under GNU GPL v3 license
:: # http://www.gnu.org/licenses/gpl-3.0.html
:: # 
:: # USAGE: HTMLTree.cmd absolute_path_to_dir
:: # 
 
If Not "%~1"=="" If Not Exist "%~1" (
    For /F "tokens=1,* delims=#" %%A In ('FindStr /R /B "::.#" "%~dpnx0"') Do (
        Echo.%%B
    )
    GoTo :EOF
)
If "%*"=="" (Set DataRoot=%~dp0) Else (Set DataRoot=%~1)
If Not "%DataRoot:~-1%"=="\" Set DataRoot=%DataRoot%\
CD /D "%DataRoot%"
For %%A In ("%DataRoot:\=" "%") Do If Not "%%~A"=="" Set RootDirName=%%~A
 
:: Настройки
Set HTML=result.html
:: Отступ задается в em
Set LeftIndentPerLevel=4
 
:Main
Call :HTMLHeader>"%HTML%"
Call :RecursiveDirListing "%DataRoot%">>"%HTML%"
Call :HTMLEndFile>>"%HTML%"
GoTo :EOF
 
 
 
:RecursiveDirListing # Обход всех вложенных директорий, генерация листинга
PushD "%~1"
Set RelativePath=%~1
Set RelativePath=!RelativePath:%DataRoot%=!
Set nLevel=0
If "!RelativePath!"=="" (
    Set Breadcrumbs=%RootDirName%
) Else (
    Set "Breadcrumbs="%RootDirName%" "!RelativePath:\=" "!""
)
For %%A In (!Breadcrumbs!) Do Set /A nLevel+=1
Set SpoilerID=s!Random!!Random!n!nLevel!
Set /A Margin=LeftIndentPerLevel*nLevel
Echo    ^<div class="listing-entry" style="margin-left:!Margin!em"^>
Echo        ^<label class="breadcrumbs" for="!SpoilerID!"^>
For %%A In (!Breadcrumbs!) Do (
    Echo            ^<span^>^<a^>%%~A^</a^>^</span^>
)
Echo        ^</label^>
Echo        ^<input class="toggle" id="!SpoilerID!" type="checkbox" name="!SpoilerID!" hidden checked^>
Echo        ^<div class="listing-content"^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B 2^>nul') Do (
    Echo        ^<span^>^<a href="file:///%%~fA" style="font-weight:bold"^>[ %%A ]^</a^>^</span^>
)
For /F "delims=" %%A In ('Dir "%~1" /A-D /O:N /B 2^>nul') Do (
    Call :GetFileSize %%~zA||Set Size=N/A
    Echo        ^<span^>^<a href="file:///%%~fA"^>%%A^</a^>^<p^>!Size!^</p^>^</span^>
)
Echo        ^</div^>
Echo    ^</div^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B') Do (
    Call :RecursiveDirListing "%%~fA"
)
PopD
Exit /B
 
:HTMLHeader # Доктайп и хидер
SetLocal DisableDelayedExpansion
Echo ^<!DOCTYPE html^>
Echo ^<html^>
Echo ^<head^>
Echo ^<meta charset="utf-8"^>
Echo ^<style^>
Call :StyleSheet
Echo ^</style^>
Echo ^<title^>Index of %DataRoot%^</title^>
Echo ^</head^>
Echo ^<body^>
Echo ^<div id="listing"^>
Exit /B
 
:StyleSheet # Минифицированный CSS
Echo    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em, font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table, caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
Echo    ol,ul{list-style:none}
Echo    blockquote,q{quotes:none}
Echo    :focus {outline:0}
Echo    ins{text-decoration:none}
Echo    del{text-decoration:line-through}
Echo    table{border-collapse:collapse;border-spacing:0}
Echo    html{height:100%%}
Echo    header,nav,section,article,aside,footer{display:block}
Echo    body{font:12px/18px Arial, Tahoma, Verdana, sans-serif;height: 100%%}
Echo    a{outline:none;text-decoration:none}
Echo    a:hover{text-decoration:none}
Echo    img{border:none}
Echo    input{vertical-align:middle}
Echo    body,html{background:#2E3436;color:#BABDB6}
Echo    a,a:visited{color:#C9BE89}
Echo    .breadcrumbs{display:inline-block;background:#272C2D;border-width:1px;border-style:solid;border-color:#3A3A3A #252525 #212121;border-radius:5px;-moz-box-shadow:0 0 2px rgba(0,0,0,.2);-webkit-box-shadow:0 0 2px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);overflow:hidden;margin-bottom:.5em;cursor:pointer;-moz-user-select:none;-khtml-user-select:none;user-select:none}
Echo    .breadcrumbs span{float:left}
Echo    .breadcrumbs a{padding:.7em 1em .7em 2em;float:left;text-decoration:none;font-weight:bold;font-size:1.2em;color:#FCAF3E;position:relative;text-shadow:0 1px 0 rgba(0,0,0,1);background-color:#1F2323;background-image:-webkit-gradient(linear, left top, right bottom, from(#2C3132), to(#1F2323));background-image:-webkit-linear-gradient(left, #2C3132, #1F2323);background-image:-moz-linear-gradient(left, #2C3132, #1F2323);background-image:-o-linear-gradient(left, #2C3132, #1F2323);background-image:linear-gradient(to right, #2C3132, #1F2323)}
Echo    .breadcrumbs span:first-child a{padding-left:1em;border-radius:5px 0 0 5px}
Echo    .breadcrumbs a:hover{background-image:-webkit-gradient(linear, left top, right bottom, from(#313637), to(#232727));background-image:-webkit-linear-gradient(left, #313637, #232727);background-image:-moz-linear-gradient(left, #313637, #232727);background-image:-o-linear-gradient(left, #313637, #232727);background-image:linear-gradient(to right, #313637, #232727);color:#C9BE89;text-shadow:rgba(252,226,54,.5) 0px 0px 10px}
Echo    .breadcrumbs a::after,.breadcrumbs a::before{content:"";position:absolute;top:50%%;margin-top:-1.5em;border-top:1.5em solid transparent;border-bottom:1.5em solid transparent;border-left:1em solid;right:-1em}
Echo    .breadcrumbs a::after{z-index:2;border-left-color:#1F2323}
Echo    .breadcrumbs a::before{border-left-color:#8B6B3C;right:-1.1em;z-index:1}
Echo    .breadcrumbs a:hover::after {border-left-color:#232727}
Echo    #listing{margin:2em 1em}
Echo    .listing-content {display:block;overflow-y:hidden;max-height:0em;transition:all .5s linear;padding:.3em 1em;opacity:0;border-left:solid 2px #999}
Echo    .listing-content:empty{display:none}
Echo    .toggle:checked ~ .listing-content {overflow-y:auto;max-height:9999em;margin: .3em 0 .5em 0;opacity:1}
Echo    .listing-content span{min-width:20em;max-width:45em;display:block;font-size:1.2em;padding-left:.8em}
Echo    .listing-content span:nth-child(2n+1){background: #272C2D}
Echo    .listing-content span:nth-child(2n){background: #2E3436}
Echo    .listing-content p{display:inline-block;float:right}
Exit /B
 
 
:HTMLEndFile # Закрывающие теги
Echo ^</div^>
Echo ^</body^>
Echo ^</html^>
Exit /B
 
:GetFileSize # Формирование отображаемого размера
Set RawSize=%1
If %RawSize% GEQ 1073741824 (
    Set Multiplier=Gb
    Set /A Size=RawSize/1024/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024*1024
    Set /A Mod=RawSize/1024/1024
    GoTo :Result
)
If %RawSize% GEQ 1048576 (
    Set Multiplier=Mb
    Set /A Size=RawSize/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024
    Set /A Mod=RawSize/1024
    GoTo :Result
)
If %RawSize% GEQ 1024 (
    Set Multiplier=Kb
    Set /A Size=RawSize/1024
    Set /A RawSize=RawSize-Size*1024
    Set /A Mod=RawSize
    GoTo :Result
)
    Set Multiplier=B
    Set /A Size=RawSize
    Set Mod=0
    GoTo :Result
)
:Result
If %Mod% LSS 10 (Set Mod=0%Mod%)
If %Mod% LSS 100 (Set Mod=0%Mod%)
Set Mod=%Mod:~,2%
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If Defined Mod (
    Set Size=%Size%,%Mod% %Multiplier%
) Else (
    Set Size=%Size% %Multiplier%
)
Exit /B
Обратите внимание - если запустить скрипт без аргументов, он сгенерирует листинг той директории, где находится сам. Чтобы указать конкретную директорию, нужно передать скрипту абсолютный путь к ней.

Добавлено через 30 минут
Совсем забыл, небольшое уточнение - если есть файлы с русскими именами, то сохранить скрипт в кодировку 866, и поменять на неё же в семьдесят восьмой строке, вместо прописанного там юникода.
3
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
14.10.2013, 01:24  [ТС]
Anonymоus, большое спасибо за Вашу помощь.
1. Скрипт работает, но у меня есть вопросы.
Нет ли возможности получить лог его работы поскольку в процессе исполнения возникают отклики такого рода:
- Системе не удается найти указанный путь
- Файл не найден
- Синтаксическая ошибка в имени файла, имени папки или метке тома
- «…..» не является внутренней или внешней командой, исполняемой программой или пакетным файлом (многоточием обозначены некоторые части имен файлов с которыми скрипт не захотел работать).
В некоторых местах он завершал работу и по сгенерированному файлу я находил, что в именах файлов на которых скрипт закончил работу имелись знаки типа тильда, длинное тире и т.п.
Я их устранил и вроде бы он проиндексировал всю папку, но у меня есть сомнения все ли файлы он в действительности отразил поскольку система выдавала вышеприведенные сообщения, даже с учетом устраненных мной знаков.
Что касается отзыва - «…..» не является внутренней или внешней командой и т.д. – то как я выяснил он связан с наличием значка & в имени файла и каталог (result.html) в итоге отразил имя до этого значка, исключая его самого.
Но вот беспокоят меня эти «Файл не найден» и «Системе не удается найти указанный путь».
2. Моя библиотека это собственно знаменитый «Колхоз», пополненный мной за десяток лет примерно на треть. Несколько сот тысяч книг.
И файл каталога там тянет на 20-25 Мб. Это тяжеловато для браузера.
Во-первых в плане загрузки – в Firefox около 5 минут грузится, правда в IE за полминуты.
Во-вторых в плане маневренности навигации
В-третьих в плане зрительного взаимодействия с материалом (что весьма и весьма важно, пожалуй повесомее предыдущих двух пунктов).
Я нашел решение создать каталог с применением фреймов.
Тогда в одном фрейме можно отразить древовидную структуру папок (в идеале – раскрывающуюся) которая будет отсылать на предмет своего содержания в другой фрейм, в котором и можно отобразить те самые множественные файлы.
Это, на мой взгляд, едва ли не идеальное решение.
Папок получается несколько сотен, но это вполне посильно сваять и руками. А вот с генерацией каталога их содержимого конечно проблема большая, собственно ее я и сформулировал.
0
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
14.10.2013, 17:08
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от ruslaw Посмотреть сообщение
Нет ли возможности получить лог его работы поскольку в процессе исполнения возникают отклики такого рода:
Завтра утром допишу логгирование всех действий, чтобы определить проблемные места.
Цитата Сообщение от ruslaw Посмотреть сообщение
как я выяснил он связан с наличием значка & в имени файла
Верно, этот символ является управляющим для командного интерпретатора и его использование нежелательно. Я не стал об этом упоминать, поскольку думал, что раз уж вы реквестируете именно батник, то вероятно, знаете об этой особенности.
Цитата Сообщение от ruslaw Посмотреть сообщение
И файл каталога там тянет на 20-25 Мб. Это тяжеловато для браузера.
Да, вот это серьёзная проблема, особенно на слабом компьютере. Возможно, вам следует задуматься о использовании специализированного софта для ведения книжных каталогов? Например, в достаточно известную раздачу архивов Либрусека включен неплохой каталог "MyHomeLib".
Фреймы - да, возможно это выход. Особенно если сверстать всё аккуратно и удобно, не пренебрегая возможностями html5 и css3. Но выходные закончились, и я, честно говоря, даже не предполагаю, когда у меня появится свободное время в следующий раз. Возможно, вам быстрее поможет кто-то другой из форумчан.

Добавлено через 15 часов 29 минут
Немного исправил скрипт. Логгирование прикручивать не стал, а вот пути со спецсимволами для него более не помеха. Ну и чуть-чуть подправил стили, добавил небольшой фикс для IE10, т.к. во всём остальном он следует стандартам, кроме отображения отключенных чекбоксов.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
@Echo Off
SetLocal EnableDelayedExpansion
:: # 
:: # HTMLTree v0.3
:: # Inquisitor, 2013
:: # Ad majorem Olanet gloriam
:: # Distributed under GNU GPL v3 license
:: # http://www.gnu.org/licenses/gpl-3.0.html
:: # 
:: # USAGE: HTMLTree.cmd absolute_path_to_dir
:: # 
 
If Not "%~1"=="" If Not Exist "%~1" (
    For /F "tokens=1,* delims=#" %%A In ('FindStr /R /B "::.#" "%~dpnx0"') Do (
        Echo.%%B
    )
    GoTo :EOF
)
If "%*"=="" (Set DataRoot=%~dp0) Else (Set DataRoot=%~1)
If Not "%DataRoot:~-1%"=="\" Set DataRoot=%DataRoot%\
CD /D "%DataRoot%"
For %%A In ("%DataRoot:\=" "%") Do If Not "%%~A"=="" Set RootDirName=%%~A
 
:: Настройки
Set HTML=result.html
:: Отступ задается в em
Set LeftIndentPerLevel=4
Set ShowFileSize=true
 
:Main
Call :HTMLHeader>"%HTML%"
Call :RecursiveDirListing "%DataRoot%">>"%HTML%"
Call :HTMLEndFile>>"%HTML%"
GoTo :EOF
 
 
 
:RecursiveDirListing # Обход всех вложенных директорий, генерация листинга
PushD "%~1"
Set "RelativePath=%~1"
Set "RelativePath=!RelativePath:%DataRoot%=!"
Set nLevel=0
If "!RelativePath!"=="" (
    Set "Breadcrumbs=%RootDirName%"
) Else (
    Set "Breadcrumbs="%RootDirName%" "!RelativePath:\=" "!""
)
For %%A In (!Breadcrumbs!) Do Set /A nLevel+=1
Set SpoilerID=s!Random!!Random!n!nLevel!
Set /A Margin=LeftIndentPerLevel*nLevel
Echo ^<div class="listing-entry" style="margin-left:!Margin!em"^>
Echo ^<label class="breadcrumbs" for="!SpoilerID!"^>
For %%A In (!Breadcrumbs!) Do (
    <nul Set /P "echo=<span><a>%%~A</a></span>"
)
Echo ^</label^>
Echo ^<input class="toggle" id="!SpoilerID!" type="checkbox" name="!SpoilerID!" hidden checked^>
Echo ^<div class="listing-content"^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B 2^>nul') Do (
    <nul Set /P "Echo=<span><a href="file:///%%~fA" style="font-weight:bold">[ %%A ]</a></span>"
)
For /F "delims=" %%A In ('Dir "%~1" /A-D /O:N /B 2^>nul') Do (
    If "%ShowFileSize%"=="true" Call :GetFileSize %%~zA||Set Size=N/A
    <nul Set /P "Echo=<span><a href="file:///%%~fA">%%A</a><p>!Size!</p></span>"
)
Echo ^</div^>
Echo ^</div^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B') Do (
    Call :RecursiveDirListing "%%~fA"
)
PopD
Exit /B
 
:HTMLHeader # Доктайп и хидер
SetLocal DisableDelayedExpansion
Echo ^<!DOCTYPE html^>
Echo ^<html^>
Echo ^<head^>
Echo ^<meta charset="utf-8"^>
Echo ^<style^>
Call :StyleSheet
Echo ^</style^>
Echo ^<title^>Index of %DataRoot%^</title^>
Echo ^</head^>
Echo ^<body^>
Echo ^<div id="listing"^>
Exit /B
 
:StyleSheet # Минифицированный CSS
Echo html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em, font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table, caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
Echo ol,ul{list-style:none}
Echo blockquote,q{quotes:none}
Echo :focus {outline:0}
Echo ins{text-decoration:none}
Echo del{text-decoration:line-through}
Echo table{border-collapse:collapse;border-spacing:0}
Echo html{height:100%%}
Echo header,nav,section,article,aside,footer{display:block}
Echo body{font:12px/18px Arial, Tahoma, Verdana, sans-serif;height: 100%%}
Echo a{outline:none;text-decoration:none}
Echo a:hover{text-decoration:none}
Echo img{border:none}
Echo input{vertical-align:middle}
Echo body,html{background:#2E3436;color:#BABDB6}
Echo a,a:visited{color:#C9BE89}
Echo .breadcrumbs{display:inline-block;background:#272C2D;border-width:1px;border-style:solid;border-color:#3A3A3A #252525 #212121;border-radius:5px;-moz-box-shadow:0 0 2px rgba(0,0,0,.2);-webkit-box-shadow:0 0 2px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);overflow:hidden;margin-bottom:.5em;cursor:pointer;-moz-user-select:none;-khtml-user-select:none;user-select:none}
Echo .breadcrumbs span{float:left}
Echo .breadcrumbs a{padding:.7em 1em .7em 2em;float:left;text-decoration:none;font-weight:bold;font-size:1.2em;color:#FCAF3E;position:relative;text-shadow:0 1px 0 rgba(0,0,0,1);background-color:#1F2323;background-image:-webkit-gradient(linear, left top, right bottom, from(#2C3132), to(#1F2323));background-image:-webkit-linear-gradient(left, #2C3132, #1F2323);background-image:-moz-linear-gradient(left, #2C3132, #1F2323);background-image:-o-linear-gradient(left, #2C3132, #1F2323);background-image:linear-gradient(to right, #2C3132, #1F2323)}
Echo .breadcrumbs span:first-child a{padding-left:1em;border-radius:5px 0 0 5px}
Echo .breadcrumbs a:hover{background-image:-webkit-gradient(linear, left top, right bottom, from(#313637), to(#232727));background-image:-webkit-linear-gradient(left, #313637, #232727);background-image:-moz-linear-gradient(left, #313637, #232727);background-image:-o-linear-gradient(left, #313637, #232727);background-image:linear-gradient(to right, #313637, #232727);color:#C9BE89;text-shadow:rgba(252,226,54,.5) 0px 0px 10px}
Echo .breadcrumbs a::after,.breadcrumbs a::before{content:"";position:absolute;top:50%%;margin-top:-1.5em;border-top:1.5em solid transparent;border-bottom:1.5em solid transparent;border-left:1em solid;right:-1em}
Echo .breadcrumbs a::after{z-index:2;border-left-color:#1F2323}
Echo .breadcrumbs a::before{border-left-color:#8B6B3C;right:-1.1em;z-index:1}
Echo .breadcrumbs a:hover::after {border-left-color:#232727}
Echo    #listing{margin:2em 1em}
Echo .listing-content {display:block;overflow-y:hidden;max-height:0em;transition:all .5s linear;padding:.3em 1em;opacity:0;border-left:solid 2px #999}
Echo .listing-content:empty{display:none}
Echo .toggle:checked ~ .listing-content {overflow-y:auto;max-height:9999em;margin: .3em 0 .5em 0;opacity:1}
Echo .listing-content span{min-width:20em;max-width:45em;display:block;font-size:1.2em;padding-left:.8em}
Echo .listing-content span:nth-child(2n+1){background: #272C2D}
Echo .listing-content span:nth-child(2n){background: #2E3436}
Echo .listing-content p{display:inline-block;float:right}
Echo .toggle{visibility:hidden}
Exit /B
 
 
:HTMLEndFile # Закрывающие теги
Echo ^</div^>
Echo ^</body^>
Echo ^</html^>
Exit /B
 
:GetFileSize # Формирование отображаемого размера
Set RawSize=%1
If %RawSize% GEQ 1073741824 (
    Set Multiplier=Gb
    Set /A Size=RawSize/1024/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024*1024
    Set /A Mod=RawSize/1024/1024
    GoTo :Result
)
If %RawSize% GEQ 1048576 (
    Set Multiplier=Mb
    Set /A Size=RawSize/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024
    Set /A Mod=RawSize/1024
    GoTo :Result
)
If %RawSize% GEQ 1024 (
    Set Multiplier=Kb
    Set /A Size=RawSize/1024
    Set /A RawSize=RawSize-Size*1024
    Set /A Mod=RawSize
    GoTo :Result
)
    Set Multiplier=B
    Set /A Size=RawSize
    Set Mod=0
    GoTo :Result
)
:Result
If %Mod% LSS 10 (Set Mod=0%Mod%)
If %Mod% LSS 100 (Set Mod=0%Mod%)
Set Mod=%Mod:~,2%
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If Defined Mod (
    Set Size=%Size%,%Mod% %Multiplier%
) Else (
    Set Size=%Size% %Multiplier%
)
Exit /B
5
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
14.10.2013, 23:13  [ТС]
спасибо. Сейчас все прошло без затруднений
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
14.10.2013, 23:40
Anonymоus, можно ли сделать поддержку кириллицы? http://savepic.su/3512975.jpg
0
3 / 3 / 0
Регистрация: 23.08.2013
Сообщений: 85
15.10.2013, 00:16  [ТС]
Тут даже я отвечу :-)
Замените, как уже было сказано, в 79-ой строке utf-8 на cp866 (предварительно сохранив скрипт в кодировке это

Добавлено через 6 минут
Тут даже я отвечу :-)
Замените, как уже было сказано, в 79-ой строке utf-8 на cp866 (предварительно сохранив скрипт в этой же кодировке - DOS).
Потом можно легко сохранить файл в ANSI, но тогда надо указать кодировку cp1251
У меня все это получается только последовательно. Если выбросить первый этап и сразу вписать 1251 то не получится.
Для перекодировок использую редактор Bred
http://www.softportal.com/software-1103-bred.html
2
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
15.10.2013, 04:04
sov44, ruslaw верно заметил, решение чуть выше описано. Добавил кодировку в конфиг скрипта, теперь она поддерживает кирилицу по умолчанию, плюс к тому добавил в настройки возможность показа количества файлов и папок (как внутри этой, так и отдельно - по всем вложенным). По умолчанию отключено, для включения изменить ContentCounter на true
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
@Echo Off
SetLocal EnableDelayedExpansion
:: # 
:: # HTMLTree v0.4
:: # Inquisitor, 2013
:: # Ad majorem Olanet gloriam
:: # Distributed under GNU GPL v3 license
:: # http://www.gnu.org/licenses/gpl-3.0.html
:: # 
:: # USAGE: HTMLTree.cmd absolute_path_to_dir
:: # 
 
If Not "%~1"=="" If Not Exist "%~1" (
    For /F "tokens=1,* delims=#" %%A In ('FindStr /R /B "::.#" "%~dpnx0"') Do (
        Echo.%%B
    )
    GoTo :EOF
)
If "%*"=="" (Set "DataRoot=%~dp0") Else (Set "DataRoot=%~1")
If Not "%DataRoot:~-1%"=="\" Set "DataRoot=%DataRoot%\"
CD /D "%DataRoot%"
For %%A In ("%DataRoot:\=" "%") Do If Not "%%~A"=="" Set "RootDirName=%%~A"
 
::  [Настройки]
Set HTML=result.html
:: Отступ задается в em
Set LeftIndentPerLevel=4
:: true\false
Set ShowFileSize=true
:: utf-8, cp866 (для кирилицы)
Set CodePage=cp866
:: true\false
Set ContentCounter=false
 
:Main
Call :HTMLHeader>"%HTML%"
Call :RecursiveDirListing "%DataRoot%">>"%HTML%"
Call :HTMLEndFile>>"%HTML%"
GoTo :EOF
 
 
 
:RecursiveDirListing # Обход всех вложенных директорий, генерация листинга
PushD "%~1"
Set "RelativePath=%~1"
Set "RelativePath=!RelativePath:%DataRoot%=!"
For %%A In (fCount dCount $fCount $dCount nLevel) Do Set %%A=0
If "%ContentCounter%"=="true" (
    For %%A In ("fCount#/A:-D" "dCount#/A:D" "$fCount#/A:-D /S" "$dCount#/A:D /S") Do (
        For /F "tokens=1,2 delims=#" %%B In ("%%~A") Do (
            For /F "delims=" %%D In ('Dir "%~1" %%C /B') Do (Set /A %%B+=1)
        )
    )
)
If "!RelativePath!"=="" (
    Set "Breadcrumbs=%RootDirName%"
) Else (
    Set "Breadcrumbs="%RootDirName%" "!RelativePath:\=" "!""
)
For %%A In (!Breadcrumbs!) Do Set /A nLevel+=1
Set SpoilerID=s!Random!!Random!n!nLevel!
Set /A Margin=LeftIndentPerLevel*nLevel
Echo ^<div class="listing-entry" style="margin-left:!Margin!em"^>
Echo ^<label class="breadcrumbs" for="!SpoilerID!"^>
For %%A In (!Breadcrumbs!) Do (
    <nul Set /P "echo=<span><a>%%~A !fCount!</a></span>"
)
Echo ^</label^>
If "%ContentCounter%"=="true" (
    Echo ^<div class="dirinfo"^>
    Echo [Files: !fCount!, Folders: !dCount!; In subfolders - Files: !$fCount!, Folders: !$dCount!]
    Echo ^</div^>
)
Echo ^<input class="toggle" id="!SpoilerID!" type="checkbox" name="!SpoilerID!" hidden checked^>
Echo ^<div class="listing-content"^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B 2^>nul') Do (
    <nul Set /P "Echo=<span><a href="file:///%%~fA" style="font-weight:bold">[ %%A ]</a></span>"
)
For /F "delims=" %%A In ('Dir "%~1" /A-D /O:N /B 2^>nul') Do (
    If "%ShowFileSize%"=="true" Call :GetFileSize %%~zA||Set Size=N/A
    <nul Set /P "Echo=<span><a href="file:///%%~fA">%%A</a><p>!Size!</p></span>"
)
Echo ^</div^>
Echo ^</div^>
For /F "delims=" %%A In ('Dir "%~1" /A:D /O:N /B') Do (
    Call :RecursiveDirListing "%%~fA"
)
PopD
Exit /B
 
:HTMLHeader # Доктайп и хидер
SetLocal DisableDelayedExpansion
Echo ^<!DOCTYPE html^>
Echo ^<html^>
Echo ^<head^>
Echo ^<meta charset="%CodePage%"^>
Echo ^<style^>
Call :StyleSheet
Echo ^</style^>
Echo ^<title^>Index of %DataRoot%^</title^>
Echo ^</head^>
Echo ^<body^>
Echo ^<div id="listing"^>
Exit /B
 
:StyleSheet # Минифицированный CSS
Echo html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em, font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table, caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
Echo ol,ul{list-style:none}
Echo blockquote,q{quotes:none}
Echo :focus {outline:0}
Echo ins{text-decoration:none}
Echo del{text-decoration:line-through}
Echo table{border-collapse:collapse;border-spacing:0}
Echo html{height:100%%}
Echo header,nav,section,article,aside,footer{display:block}
Echo body{font:12px/18px Arial, Tahoma, Verdana, sans-serif;height: 100%%}
Echo a{outline:none;text-decoration:none}
Echo a:hover{text-decoration:none}
Echo img{border:none}
Echo input{vertical-align:middle}
Echo body,html{background:#2E3436;color:#BABDB6}
Echo a,a:visited{color:#C9BE89}
Echo .breadcrumbs{display:inline-block;background:#272C2D;border-width:1px;border-style:solid;border-color:#3A3A3A #252525 #212121;border-radius:5px;-moz-box-shadow:0 0 2px rgba(0,0,0,.2);-webkit-box-shadow:0 0 2px rgba(0,0,0,.2);box-shadow:0 0 3px rgba(0,0,0,.2);overflow:hidden;margin-bottom:.5em;cursor:pointer;-moz-user-select:none;-khtml-user-select:none;user-select:none}
Echo .breadcrumbs span{float:left}
Echo .breadcrumbs a{padding:.7em 1em .7em 2em;float:left;text-decoration:none;font-weight:bold;font-size:1.2em;color:#FCAF3E;position:relative;text-shadow:0 1px 0 rgba(0,0,0,1);background-color:#1F2323;background-image:-webkit-gradient(linear, left top, right bottom, from(#2C3132), to(#1F2323));background-image:-webkit-linear-gradient(left, #2C3132, #1F2323);background-image:-moz-linear-gradient(left, #2C3132, #1F2323);background-image:-o-linear-gradient(left, #2C3132, #1F2323);background-image:linear-gradient(to right, #2C3132, #1F2323)}
Echo .breadcrumbs span:first-child a{padding-left:1em;border-radius:5px 0 0 5px}
Echo .breadcrumbs a:hover{background-image:-webkit-gradient(linear, left top, right bottom, from(#313637), to(#232727));background-image:-webkit-linear-gradient(left, #313637, #232727);background-image:-moz-linear-gradient(left, #313637, #232727);background-image:-o-linear-gradient(left, #313637, #232727);background-image:linear-gradient(to right, #313637, #232727);color:#C9BE89;text-shadow:rgba(252,226,54,.5) 0px 0px 10px}
Echo .breadcrumbs a::after,.breadcrumbs a::before{content:"";position:absolute;top:50%%;margin-top:-1.5em;border-top:1.5em solid transparent;border-bottom:1.5em solid transparent;border-left:1em solid;right:-1em}
Echo .breadcrumbs a::after{z-index:2;border-left-color:#1F2323}
Echo .breadcrumbs a::before{border-left-color:#8B6B3C;right:-1.1em;z-index:1}
Echo .breadcrumbs a:hover::after {border-left-color:#232727}
Echo    #listing{margin:2em 1em}
Echo .listing-content {display:block;overflow-y:hidden;max-height:0em;transition:all .5s linear;padding:.3em 1em;opacity:0;border-left:solid 2px #999}
Echo .listing-content:empty{display:none}
Echo .toggle:checked ~ .listing-content {overflow-y:auto;max-height:9999em;margin: .3em 0 .5em 0;opacity:1}
Echo .listing-content span{min-width:20em;max-width:45em;display:block;font-size:1.2em;padding-left:.8em}
Echo .listing-content span:nth-child(2n+1){background: #272C2D}
Echo .listing-content span:nth-child(2n){background: #2E3436}
Echo .listing-content p{display:inline-block;float:right}
Echo .toggle{visibility:hidden}
Exit /B
 
 
:HTMLEndFile # Закрывающие теги
Echo ^</div^>
Echo ^</body^>
Echo ^</html^>
Exit /B
 
:GetFileSize # Формирование отображаемого размера
Set RawSize=%1
If %RawSize% GEQ 1073741824 (
    Set Multiplier=Gb
    Set /A Size=RawSize/1024/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024*1024
    Set /A Mod=RawSize/1024/1024
    GoTo :Result
)
If %RawSize% GEQ 1048576 (
    Set Multiplier=Mb
    Set /A Size=RawSize/1024/1024
    Set /A RawSize=RawSize-Size*1024*1024
    Set /A Mod=RawSize/1024
    GoTo :Result
)
If %RawSize% GEQ 1024 (
    Set Multiplier=Kb
    Set /A Size=RawSize/1024
    Set /A RawSize=RawSize-Size*1024
    Set /A Mod=RawSize
    GoTo :Result
)
    Set Multiplier=B
    Set /A Size=RawSize
    Set Mod=0
    GoTo :Result
)
:Result
If %Mod% LSS 10 (Set Mod=0%Mod%)
If %Mod% LSS 100 (Set Mod=0%Mod%)
Set Mod=%Mod:~,2%
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If %Mod:~-1%==0 ( Set Mod=%Mod:~,-1%)
If Defined Mod (
    Set Size=%Size%,%Mod% %Multiplier%
) Else (
    Set Size=%Size% %Multiplier%
)
Exit /B
Цитата Сообщение от ruslaw Посмотреть сообщение
У меня все это получается только последовательно. Если выбросить первый этап и сразу вписать 1251 то не получится.
А самому скрипту без разницы, в 1251 он, в UTF-8 или 866 (поскольку русских сообщений он не выводит, всё в рамках ANSI). Важно лишь указать правильную кодировку (866) в создаваемом HTML, поскольку вывод dir туда отдается напрямую, а он как раз в 866 кирилицу и отдаёт.
2
15.10.2013, 14:02

Не по теме:

Как переводится "Ad majorem Olanet gloriam" ? :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2013, 14:02
Помогаю со студенческими работами здесь

Батник для переноса папок и файлов
Доброго времени суток, уважаемые участники форума! На работе имеется &quot;файлопомойка&quot; со следующей структурой папок: Задача...

Иконки папок, батник на изменение группы папок
Здравстуйте :) Начну издалека. Имеется значит у меня набор портативных программок на все случаи жизни (ну или почти). Папка с кучей...

Нужен батник, для сортировки
Здравствуйте), есть txt файл прикрепил.Нужно что бы батник умел сортировать по Строке Number: от большего к меньшему , после чего создал...

Очень Нужен батник для переименнованиЯ!
Здравствуйте, помогите пж, после востановления компа были переименованы группа папок и файлов от мозлы, половина данных полетело Буду...

Отобразить txt файл записи результатов
Помогите пожалуйста, результаты записуются в файл с предварительно заданым адресом в textbox как с помощью коммандбаттона вывести этот файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru