Страница 1 из 2
Добавлено: Пт июн 24, 2011 17:27
shveicar
Подскажите - тема создания каталогов из списка текстового файла неоднократно обсуждалась. а вот создание группы html файлов с именами из файла списка я не встречал. В принципе такое возможно?
Например существует макет html шаблона
Код: Выделить всё
<html>
<head>
<title>Untitled</title>
</head>
<body>
<center>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="640" height="480">
<param name="movie" value="11.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent">
<embed src="11.swf"
quality="high"
type="application/x-shockwave-flash"
WMODE="transparent"
width="640"
height="480"
pluginspage="http://www.macromedia.com/go/getflashplayer"
allowScriptAccess="always" />
</object></center>
</center>
</body>
</html>
-существует текстовой файл со списком имен (без расширения html) Нужно чтобы при нажатии на кнопку в текущей директории создавались html файлы с именами из списка текстового файла. И с содержимым указанным в коде. Конечно можно создать один файл, далее его размножить, затем использовать групповое переименование по списку. Но если есть возможность решить это более простым путем было бы здорово. Особенно для тех кто занимается web дизайном.
Добавлено: Пт июн 24, 2011 17:56
Flasher
shveicar
Вот только свалку из оффтопных хотелок тут устраивать не надо. Создаём новую тему и вперёд.
Добавлено: Пт июн 24, 2011 20:56
Avada
Добавлено: Пт июн 24, 2011 21:07
shveicar
Прошу прощения. Я подумал что темы схожи.
Добавлено: Пт июн 24, 2011 21:43
Flasher
Код: Выделить всё
' Создание html-файлов в активной панели с именами из файла-списка
'и содержимым указанного файла-шаблона
' Параметры: "<Путь к файлу списку>" "<Путь к файлу-шаблону>"
'================================================
With CreateObject("WScript.Shell")
L=.ExpandEnvironmentStrings(WScript.Arguments(0))
T=.ExpandEnvironmentStrings(WScript.Arguments(1))
D=.CurrentDirectory
End With
With CreateObject("Scripting.FileSystemObject")
List=.OpenTextFile(L, 1).ReadAll
On Error Resume Next
For Each F In Split(List, vbNewLine)
If F>vbNullString Then .GetFile(T).Copy D&"\"&F&".html"
Next
End With
Добавлено: Пт июн 24, 2011 22:17
shveicar
Спасибо, но выскакивает ошибка строка 6, символ 1 файл не найден
Оба текстовых файла лежат в одной директории со скриптом.
параметры запуска
Код: Выделить всё
"%COMMANDER_PATH%\Utils\filelist.txt" "%COMMANDER_PATH%\Utils\shablon.txt"
в одну строчку, что может быть не так?
Добавлено: Пт июн 24, 2011 22:26
Flasher
Дело в переменных окружения. Если параметры писать в строке "Команда", то переменные будут подменяться. В поле "Параметры" работало бы с обычными путями. Поправил для такого варианта, только надо не забывать про удвоенный знак % в этом поле. Путь запуска в кнопке должен быть очищен.
Добавлено: Пт июн 24, 2011 23:28
shveicar
Выдает строка 11 символ 1 путь не найден.
Добавлено: Пт июн 24, 2011 23:35
Flasher
Я вроде всё пояснил. Что неясно из написанного? Можно увидеть код кнопки?
Добавлено: Пт июн 24, 2011 23:43
shveicar
может попробовать на базе такого скрипта создать нужный вариант
Код: Выделить всё
'==========================================================================
' Создание в текущей папке для всех файлов с указанным расширением
' аналогичного файла с другим указанным расширением
' В параметрах вызова из TC должно быть прописано:
' "%P" {расширение исходных файлов} {расширение создаваемых файлов}
' Пример:
' "%P" wmv html
'==========================================================================
Dim MB
If WScript.Arguments.Count < 3 Then
MB = MsgBox("Заданы не все параметры!", vbOKOnly + vbExclamation, "Создание новых файлов")
WScript.Quit
End If
Dim FSO, CurrentFolder, Ext1, Ext2, oFolder, oFile, NewFilePath, oNewFile
Set FSO = CreateObject("Scripting.FileSystemObject")
CurrentFolder = WScript.Arguments(0)
Ext1 = WScript.Arguments(1)
Ext2 = WScript.Arguments(2)
If not FSO.FolderExists(CurrentFolder) Then
MB = MsgBox("Папка " & CurrentFolder & " не существует!", vbOKOnly + vbExclamation, "Создание новых файлов")
WScript.Quit
End If
Set oFolder = FSO.GetFolder(CurrentFolder)
For Each oFile in oFolder.Files
If FSO.GetExtensionName(oFile.Path) = Ext1 Then
NewFilePath = CurrentFolder & FSO.GetBaseName(oFile.Path) & "." & Ext2
If not FSO.FileExists(NewFilePath) Then
Set oNewFile = FSO.CreateTextFile(NewFilePath)
oNewFile.Close
End If
End If
Next
Set oFolder = Nothing
Set oFile = Nothing
Set oNewFile = Nothing
Set FSO = Nothing
Wscript.Quit
- Да простит меня его автор за модернизацию. Единственное в данном виде скрипт создает html файлы(с пустым содержанием) из выделенных файлов в данном случае (видео файлы с расширением wmv) Вод если загнать в него шаблон(пусть даже самый простой например
Код: Выделить всё
Dim fso, F
Set fso = CreateObject("scripting.filesystemobject")
F = WScript.Arguments(0)
Set F=fso.OpenTextFile(F, 2, True)
F.WriteLine("<html>")
F.WriteLine("<head>")
F.WriteLine("<title>Untitled</title>")
F.WriteLine("</head>")
F.WriteLine("<body>")
F.WriteLine("<center>")
F.WriteLine("<h1>страница</h1>")
F.WriteLine("<table>")
F.WriteLine("<tr>")
F.WriteLine("<td>")
F.WriteLine("<p>привет</p>")
F.WriteLine("</td>")
F.WriteLine("</tr>")
F.WriteLine("</table>")
F.WriteLine("</center>")
F.WriteLine("</body>")
F.WriteLine("</html>")
Set F=Nothing
Set fso=Nothing
WScript.Quit
- (теги впоследствии можно заменить программой например- словогрыз) и сделать создание из файла списка, то будет то что надо.
Добавлено спустя 5 минут:
Я вроде всё пояснил. Что неясно из написанного? Можно увидеть код кнопки?
Пожалуйста -
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\sozdanie_shablona_html.vbs
"%COMMANDER_PATH%\Utils\filelist.txt" "%COMMANDER_PATH%\Utils\shablon.txt"
%COMMANDER_PATH%\ico\2trees_bg740.ico
sozdanie_shablona_html
0
-1
Добавлено: Пт июн 24, 2011 23:50
Flasher
shveicar писал(а):Пожалуйста -
Видимо, неясно (хотя вроде по-русски написано).
Для первого варианта:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\sozdanie_shablona_html.vbs "%COMMANDER_PATH%\Utils\filelist.txt" "%COMMANDER_PATH%\Utils\shablon.txt"
ico\2trees_bg740.ico
sozdanie_shablona_html
Для второго:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\sozdanie_shablona_html.vbs
"%%COMMANDER_PATH%%\Utils\filelist.txt" "%%COMMANDER_PATH%%\Utils\shablon.txt"
ico\2trees_bg740.ico
sozdanie_shablona_html
Добавлено: Сб июн 25, 2011 00:00
shveicar
Извиняюсь просто такая комбинация
мне раньше не попадалась - кстати по мимо файлов из текстового списка создается еще один файл - без имени вида
но тоже с содержанием(шаблона) - хотя в списке его нет, то-есть добавляется один лишний файл. А так скрипт работает - спасибо!
Добавлено: Сб июн 25, 2011 01:13
Flasher
shveicar писал(а):Извиняюсь просто такая комбинация мне раньше не попадалась
Справка писал(а):Диалоговое окно: Конфигурация – Панель инструментов
...
Параметры:
...
- %% Вставляет одиночный знак процента.
shveicar писал(а):хотя в списке его нет
Пустую строку в списке надо убрать.
Добавлено: Сб июн 25, 2011 01:34
shveicar
Большое Спасибо - как я сразу не догадался! Как говорится век живи -век учись.
Добавлено: Сб июн 25, 2011 01:40
Flasher
Пожалуйста. Добавил условие, чтобы пустые или пробельные строки игнорировались.