Страница 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
shveicar
Соблюдаем правила! Отделено в самостоятельную тему из Редактирование файлов (вырезать, вставить, массово).

Добавлено: Пт июн 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
Пожалуйста. Добавил условие, чтобы пустые или пробельные строки игнорировались.