Создание информационных файлов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: FlasherLocation: Москва PostPosted: Wed Dec 24, 2014 21:42
    —
KatMuse
Я исхожу из поставленной задачи:
KatMuse wrote:
Создать текстовый файл на основании двух переданных параметров - путь и имя файла.
То есть mybat.bat "C:\temp" "test.jpg" и получаем файл с именем "! test.txt" в каталоге temp.
Разве она не соответствует той, что по ссылке? Там помимо notepad ещё несколько вариантов.

Last edited by Flasher on Wed Dec 24, 2014 21:53; edited 1 time in total

#17:  Author: KatMuse PostPosted: Wed Dec 24, 2014 21:48
    —
Вот частичное решение, а как добавить информацию о файле я не понимаю...
Quote:
Set folder="%~1\! %~n2.txt"
Set FName="" "%~1\! %~n2.txt"

@type nul>%folder%& start %FName%


Добавлено спустя 2 минуты:

Flasher
прошу прощения, это моя не доработка... Я имел ввиду другой контекст, с учётом первой задачи. Безусловно речь шла о заместителе для конкретного файла. Извините.

#18:  Author: FlasherLocation: Москва PostPosted: Wed Dec 24, 2014 21:58
    —
Ясно. А описание к файлу должно быть в каком-то в определённом формате? А то можно было бы вытащить чуть больше.

#19:  Author: KatMuse PostPosted: Wed Dec 24, 2014 22:27
    —
Flasher
Спасибо за ответ! Мне лишь бы информативно, а формат описания не играет большой роли, другое дело, что я могу не понять некоторые элементы, так как опыт не большой, но если ещё прокомментируете, то было просто замечательно. Учиться я люблю Smile
Я собственно в описание ввожу ключевые слова, чтобы потом можно было искать нужные файлы (не хочу зависеть от каталогизаторов), но очень бы хотелось добавить туда ещё и полезную информацию. А ещё лучше информация плюс хэш, но это уже понеслись мои мечты Smile

Добавлено спустя 27 минут:

Частичное решение не работает для всех файлов, а только для тех, у имени которых нет пробела.

#20:  Author: FlasherLocation: Москва PostPosted: Wed Dec 24, 2014 23:05
    —
KatMuse wrote:
плюс хэш
Ммм. С этим не сразу (хотя смотря какой вариант реализации выбрать).

#21:  Author: KatMuse PostPosted: Wed Dec 24, 2014 23:37
    —
Flasher, спасибо за ответ!
Quote:
С этим не сразу (хотя смотря какой вариант реализации выбрать)

Ого! То есть это реально? Ничего себе, а я думал, что это нереально. Просто я очень хэши люблю, так как они сразу показывают, что было с файлом и это он повреждён или в системе проблема.

#22:  Author: FlasherLocation: Москва PostPosted: Thu Dec 25, 2014 00:03
    —
KatMuse
Но всё же хэши желательно чем-то (например, инструментом ТС) проверять на автомате, а тут получается просто чтение информации. Разве это удобно?

Прежде покажу vbs-вариант без хэша (а после выяснения надобности выберем вариант):
Code:
'=========================================================
' Создать текстовые инфо-файлы к выбранным

' Параметры: %WL "<папка сохранения>" <открывать файлы: 1>
' Пример:    %WL "%T" 1
'=========================================================
With WScript.Arguments
  C = .Count : If C = 0 Then WScript.Quit
  Set FSO  = CreateObject("Scripting.FileSystemObject")
  Set SHA  = CreateObject("Shell.Application")
  Set List = FSO.OpenTextFile(.Item(0),,,-1)
  Path = FSO.BuildPath(.Item(1), "\") : If C = 3 Then Open = .Item(2)
End With
Do Until List.AtEndOfStream
  F = List.ReadLine
  If F <> "" And FSO.FileExists(F) And LCase(FSO.GetExtensionName(F)) <> "txt" Then
    With FSO.GetFile(F)
      Set Folder = SHA.NameSpace(.ParentFolder.Path)
      All = ""  : Set File = Folder.ParseName(.Name)
    End With
    For i = 0 to 288
      Value = Folder.GetDetailsOf(File, i) : If Value <> "" Then _
      All = All & vbNewLine & Folder.GetDetailsOf(0, i) & ":  " & Value
    Next : NF = Path & FSO.GetBaseName(F) & ".txt" : If Not FSO.FileExists(NF) Then _
    FSO.OpenTextFile(NF, 2, True, -1).Write Mid(All, 3) : If Open = 1 Then SHA.Open(NF)
  End If
Loop


Last edited by Flasher on Fri Dec 26, 2014 10:40; edited 1 time in total

#23:  Author: KatMuse PostPosted: Thu Dec 25, 2014 00:20
    —
Shocked Shocked Shocked Shocked Shocked
Это изумительно, великолепно, просто невероятно!!!
Это даже больше того о чём я мечтал!!!
Спасибо!!!
Вы правы это не удобно... я всех хешей не помню ведь Smile
Flasher, ещё раз спасибо!

#24:  Author: FlasherLocation: Москва PostPosted: Thu Dec 25, 2014 00:25
    —
Вот это реакция! Very Happy Пожалуйста!
Я там ещё проверку добавлял на существование инфо-файла, чтобы не спотыкалось на ошибке, если что.

#25:  Author: KatMuse PostPosted: Thu Dec 25, 2014 00:55
    —
Спасибо Вам огромное, Flasher!

#26:  Author: FlasherLocation: Москва PostPosted: Fri Dec 26, 2014 17:57
    —
KatMuse
Я тут подумал, надо бы от лишнего мусора (дублирование и отрицания) избавиться и выровнять
значения в колонке для моноширинного шрифта (Courier New, Lucida Console и т. п.) в текстовом редакторе:
 CreateInfoTxtForSelectedFiles.vbs

#27:  Author: KatMuse PostPosted: Fri Jan 02, 2015 02:27
    —
Flasher,
Спасибо! Доработка восхитительна... Вся необходимая информация представлена наглядно и удобно. Очень легко искать нужный файл.
Реализация задачи превосходит все ожидания в сотню раз! Невероятно!

#28:  Author: KatMuse PostPosted: Mon Jan 26, 2015 12:57
    —
Можно ли попросить добавить пакетный режим, то есть, например, при выделении нужных файлов, в режиме без подкаталогов, заместители создавались бы автоматически и не открывались.

#29:  Author: FlasherLocation: Москва PostPosted: Mon Jan 26, 2015 13:15
    —
KatMuse
Code:
  Path = FSO.BuildPath(.Item(1), "\") : If C = 3 Then Open = .Item(2)
заменить на
Code:
  If C = 2 Then Open = .Item(1)
и в 4-й строке снизу Path заменить на FSO.GetParentFolderName(F) & "\"
2-й и 3-й параметры убрать.

#30:  Author: KatMuse PostPosted: Mon Jan 26, 2015 17:28
    —
Юху!!! Very Happy Всё чудесно работает!!!
Файлики создаются - я радуюсь Smile Спасибо!!!



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3  Next  :| |:
Page 2 of 3

Powered by phpBB © 2001, 2005 phpBB Group