Страница 4 из 46
Добавлено: Пн мар 06, 2006 15:26
Batya
LocKtaR-o-DarK писал(а): лучше идеи выкладывайте...
Пожалуй, есть интересная кнопка, которой могу поделиться.
TOTALCMD#BAR#DATA
d:\TotalCmd\Utils\Lst2Str\lst2str.exe
/X:"d:\Program Files\Compare It!\wincmp3.exe" /L:%L /F:%T%M
d:\progra~1\compar~1\wincmp3.exe
Сравнение файлов
-1
Кнопка - сравнение файлов с помощью сторонней утилиты Compare It! Если в текущей панели выделено более одного файла, то сравниваются первый и второй файлы. Если выделен только один или нет выделенных, то сравнивается файл под курсором с текущем файлом на противоположной панели (текущий - это тот, на котором стоит курсор, если нажать Tab (перейти на панель)).
Здесь цветами:
Синий - утилита lst2str от Гислера, которая передает указанной в параметрах программе в качестве параметров список выделенных файлов через пробел;
Зеленый - утилита Compare It!
Добавлено: Пн мар 06, 2006 16:01
LocKtaR-o-DarK
Batya
Спасибо! ломал голову над этим, так и не добился результата...

Если не трудно, ссылу на lst2str и думаю в описание кнопки надо добавить то, над чем ты работал, ... в одной панели.
Можно ли такое же сделать для бесплатного аналога _
WinMerge программы Compare It! ?
Добавлено: Пн мар 06, 2006 16:15
Batya
Утилита
lst2str.
Для WinMerge синтаксис, вроде, должен быть тот же. Т.е. нужно поменять только путь к экзэшнику в параметрах кнопки и файле значка.
Добавлено: Пн мар 06, 2006 16:55
Batya
Еще кнопочка.
Так получается, что мне по работе часто приходится снимать признак ReadOnly с файлов. В принципе, можно для этого пользоваться и свойствами файлов, и командой изменения атрибутов в TC, но мне совсем не хотелось поднимать какие-либо диалоговые окна. Вот и написал скрипт.
Кнопка:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveReadOnly.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only
-1
Соответственно, пути к скрипту и файлу значка у вас могут свои.
Скрипт RemoveReadOnly.vbs:
Код: Выделить всё
'=====================================================================
' Снятие признака Read-Only с отмеченных файлов и папок (файлов в них)
' В параметрах вызова из TC должно быть прописано:
' %L
'=====================================================================
Dim FSO, StreamFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Dim Selected, CurrFile, CurrFolder
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
Set CurrFile = FSO.GetFile(Selected)
If CurrFile.Attributes and 1 Then
CurrFile.Attributes = CurrFile.Attributes - 1
End If
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
FolderProcess(CurrFolder)
End If
Loop
'MsgBox("Выполнено!")
Wscript.Quit()
Function FolderProcess(CurrFolder)
Dim sf, f
For Each sf in CurrFolder.SubFolders
FolderProcess(sf)
Next
For Each f in CurrFolder.Files
If f.Attributes and 1 Then
f.Attributes = f.Attributes - 1
End If
Next
End Function
Добавлено: Пн мар 06, 2006 17:36
CaptainFlint
Batya
Кнопка - сравнение файлов с помощью сторонней утилиты Compare It!
О, а вот за это респект! Compare It! я себе уже давно прикрутил, но как его вызывать для выделенных файлов, не продумал. Спасибо!
PS: Для более "чистого" вызова можно добавить параметр /N:2

Добавлено: Пт мар 10, 2006 13:54
LocKtaR-o-DarK
Подтверждаю работу с
WinMerge
TOTALCMD#BAR#DATA
путь_к_lst2str
/X:c:\progra~1\winmerge\winmerge /L:%L /F:%T%M /N:2
c:\progra~1\winmerge\winmerge.exe,1
Сравнение двух файлов в одной панели WinMerge
Добавлено: Пн мар 13, 2006 00:43
LocKtaR-o-DarK
Компиляция скприпта NSIS
Код: Выделить всё
TOTALCMD#BAR#DATA
c:\progra~1\NSIS\makensisw
%N
c:\progra~1\NSIS\makensisw.exe
Компилировать NSIS
Добавлено: Пн мар 13, 2006 12:46
Batya
Выше я описал, как принудительно снять атрибут у файлов.
Теперь есть задача:
Нужно файлам присваивать атрибут – скрытый, без лишних вопросов.
Во-первых, возможные атрибуты (можно изменить описанный ниже скрипт):
Код: Выделить всё
Normal 0 Normal file. No attributes are set.
ReadOnly 1 Read-only file. Attribute is read/write.
Hidden 2 Hidden file. Attribute is read/write.
System 4 System file. Attribute is read/write.
Volume 8 Disk drive volume label. Attribute is read-only.
Directory 16 Folder or directory. Attribute is read-only.
Archive 32 File has changed since last backup. Attribute is read/write.
Alias 64 Link or shortcut. Attribute is read-only.
Compressed 128 Compressed file. Attribute is read-only.
Теперь кнопка:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetHidden.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only
-1
Скрипт SetHidden.vbs:
Код: Выделить всё
'=====================================================================
' Установка признака Hidden у отмеченных файлов и папок (файлов в них)
' В параметрах вызова из TC должно быть прописано:
' %L
'=====================================================================
Dim FSO, StreamFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Dim Selected, CurrFile, CurrFolder, Attr
Attr = 2 ' Атрибут "Hidden"
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
Set CurrFile = FSO.GetFile(Selected)
If Not (CurrFile.Attributes and Attr) Then
CurrFile.Attributes = CurrFile.Attributes + Attr
End If
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
FolderProcess(CurrFolder)
End If
Loop
'MsgBox("Выполнено!")
Wscript.Quit()
Function FolderProcess(CurrFolder)
Dim sf, f
For Each sf in CurrFolder.SubFolders
FolderProcess(sf)
Next
For Each f in CurrFolder.Files
If Not (f.Attributes and Attr) Then
f.Attributes = f.Attributes + Attr
End If
Next
End Function
Добавлено: Пн мар 13, 2006 21:30
Volniy
Batya, извини, но сильно режет глаз вот это
Код: Выделить всё
If Not (f.Attributes and Attr) Then
f.Attributes = f.Attributes + Attr
End If
А не лучше ли вот так будет все это написать
Операция
OR корректно
устанавливает атрибут вне зависимости от того присвоен ли он уже или нет (а
And Not -
снимает его так же корректно).
Добавлено: Вт мар 14, 2006 10:26
Batya
Volniy
Ооо... Спасибо большое! Буду знать (я редко работал с битовыми комбинациями).
Добавлено: Вт мар 14, 2006 15:15
Zorroz
2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то.
Добавлено: Вт мар 14, 2006 16:27
Batya
Zorroz писал(а):2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то.
А я для папок и не менял атрибуты. Только для файлов в них.
Если это надо, то кнопка:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Установка атрибута "Скрытый"
-1
Скрипт (немного поправленный и обобщенный) SetAttr.vbs:
Код: Выделить всё
'=====================================================================
' Установка атрибута у отмеченных файлов и папок (файлов в них)
' В параметрах вызова из TC должно быть прописано:
' %L {битовый флаг атрибута}
' например, для атрибута "Hidden" ("Скрытый"):
' %L 2
'=====================================================================
Dim FSO, StreamFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Dim Selected, CurrFile, CurrFolder, Attr
Attr = WScript.Arguments(1)
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
Set CurrFile = FSO.GetFile(Selected)
CurrFile.Attributes = CurrFile.Attributes Or Attr
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
CurrFolder.Attributes = CurrFolder.Attributes Or Attr
FolderProcess(CurrFolder)
End If
Loop
'MsgBox("Выполнено!")
Set FSO = Nothing
Set StreamFile = Nothing
Set CurrFile = Nothing
Set CurrFolder = Nothing
Wscript.Quit()
Function FolderProcess(CurrFolder)
Dim sf, f
For Each sf in CurrFolder.SubFolders
sf.Attributes = sf.Attributes Or Attr
FolderProcess(sf)
Next
For Each f in CurrFolder.Files
f.Attributes = f.Attributes Or Attr
Next
End Function
Добавлено: Вт мар 14, 2006 16:35
Batya
Для снятия атрибута кнопка:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие атрибута "Скрытый"
-1
Скрипт RemoveAttr.vbs:
Код: Выделить всё
'=====================================================================
' Снятие атрибута с отмеченных файлов и папок (файлов в них)
' В параметрах вызова из TC должно быть прописано:
' %L {битовый флаг атрибута}
' например, для атрибута "Hidden" ("Скрытый"):
' %L 2
'=====================================================================
Dim FSO, StreamFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set StreamFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Dim Selected, CurrFile, CurrFolder, Attr
Attr = WScript.Arguments(1)
Do While Not StreamFile.AtEndOfStream
Selected = StreamFile.ReadLine
If FSO.FileExists(Selected) Then
Set CurrFile = FSO.GetFile(Selected)
CurrFile.Attributes = CurrFile.Attributes And Not Attr
End If
If FSO.FolderExists(Selected) Then
Set CurrFolder = FSO.GetFolder(Selected)
CurrFolder.Attributes = CurrFolder.Attributes And Not Attr
FolderProcess(CurrFolder)
End If
Loop
'MsgBox("Выполнено!")
Set FSO = Nothing
Set StreamFile = Nothing
Set CurrFile = Nothing
Set CurrFolder = Nothing
Wscript.Quit()
Function FolderProcess(CurrFolder)
Dim sf, f
For Each sf in CurrFolder.SubFolders
sf.Attributes = sf.Attributes And Not Attr
FolderProcess(sf)
Next
For Each f in CurrFolder.Files
f.Attributes = f.Attributes And Not Attr
Next
End Function
Добавлено: Ср мар 15, 2006 11:35
Zorroz
Кнопочка для резервного копирования файлов перечисленных в «c:\totalcmd\Plugins\Script\backup\totalcmd.txt» в «E:\Мои Документы\Я-Copy\totalcmd\». Причем имя файла выглядит как день.месяц.год.
Код: Выделить всё
TOTALCMD#BAR#DATA
C:\Program Files\WinRAR\WinRAR.exe
a -m1 -agYYYY.MM.DD "E:\Мои Документы\Я-Copy\totalcmd\" @c:\totalcmd\Plugins\Script\backup\totalcmd.txt
C:\totalcmd\TOTALCMD.EXE
backup totalcmd
C:\Program Files\WinRAR\
-1
Вопрос! А что лучше использовать WinRAR.exe или Rar.exe в плане скорости?
Добавлено: Ср мар 15, 2006 18:49
iov
BatyaА у тебя в параметре /X у winmerge расширение не указано.
Эти грабли я сразу отложил подальше, только вот с %COMMANDER_PATH% беда, попробовал лечить примерно так
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\Lst2Str\lst2str.exe
/X:"..\winmerge\winmerge.exe"
/L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Utils\winmerge\winmerge.exe
Сравнение файлов
-1
Всё бы хорошо, только вот если сравнивать файлы ниже корня total !!
Так! Я ночью в поле и кругом грабли!!
Желаемая кнопка! ( не пашет!)
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCplugins\lst2str\lst2str.exe
/X:"%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe" /L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe
Сравнение двух файлов в одной панели WinMerge
-1
lst2str случаем не обновлялась?
Пробовал на XP и 2003 сервере! Кроме этого косяков нет! Total как часы (плагины бывает и глючат , но работают)
Блин пока придётся кидать к каждой проге lst2str.exe, но это не решение проблемы а только способ её устранения!
в таком виде всё прекрасно работает!
Код: Выделить всё
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\lst2str.exe"
/X:"WinMerge.exe" /L:%L /F:%T%M /N:2
%COMMANDER_PATH%\Programm\!_Text&Office\WinMerge\WinMerge.exe
Сравнение двух файлов в одной панели WinMerge
-1