View previous topic :: View next topic |
Author |
Message |
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 06, 2006 16:26 Post subject: |
|
|
LocKtaR-o-DarK wrote: | лучше идеи выкладывайте... |
Пожалуй, есть интересная кнопка, которой могу поделиться.
Quote: | 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! |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2006 17:01 Post subject: |
|
|
Batya
Спасибо! ломал голову над этим, так и не добился результата...
Если не трудно, ссылу на lst2str и думаю в описание кнопки надо добавить то, над чем ты работал, ... в одной панели.
Можно ли такое же сделать для бесплатного аналога _WinMerge программы Compare It! ? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 06, 2006 17:15 Post subject: |
|
|
Утилита lst2str.
Для WinMerge синтаксис, вроде, должен быть тот же. Т.е. нужно поменять только путь к экзэшнику в параметрах кнопки и файле значка. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 06, 2006 17:55 Post subject: |
|
|
Еще кнопочка.
Так получается, что мне по работе часто приходится снимать признак ReadOnly с файлов. В принципе, можно для этого пользоваться и свойствами файлов, и командой изменения атрибутов в TC, но мне совсем не хотелось поднимать какие-либо диалоговые окна. Вот и написал скрипт.
Кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveReadOnly.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only
-1
|
Соответственно, пути к скрипту и файлу значка у вас могут свои.
Скрипт RemoveReadOnly.vbs:
Code: | '=====================================================================
' Снятие признака 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 |
|
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6154 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2006 18:36 Post subject: |
|
|
Batya
Quote: | Кнопка - сравнение файлов с помощью сторонней утилиты Compare It! |
О, а вот за это респект! Compare It! я себе уже давно прикрутил, но как его вызывать для выделенных файлов, не продумал. Спасибо!
PS: Для более "чистого" вызова можно добавить параметр /N:2 |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Fri Mar 10, 2006 14:54 Post subject: |
|
|
Подтверждаю работу с WinMerge
Quote: | 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 |
Last edited by LocKtaR-o-DarK on Mon Apr 03, 2006 10:14; edited 1 time in total |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Mon Mar 13, 2006 01:43 Post subject: |
|
|
Компиляция скприпта NSIS
Code: | TOTALCMD#BAR#DATA
c:\progra~1\NSIS\makensisw
%N
c:\progra~1\NSIS\makensisw.exe
Компилировать NSIS |
Last edited by LocKtaR-o-DarK on Mon Apr 03, 2006 10:15; edited 1 time in total |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 13, 2006 13:46 Post subject: |
|
|
Выше я описал, как принудительно снять атрибут у файлов.
Теперь есть задача:
Нужно файлам присваивать атрибут – скрытый, без лишних вопросов.
Во-первых, возможные атрибуты (можно изменить описанный ниже скрипт):
Code: | 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. |
Теперь кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetHidden.vbs
%L
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие признака Read-Only
-1 |
Скрипт SetHidden.vbs:
Code: | '=====================================================================
' Установка признака 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 |
|
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Mar 13, 2006 22:30 Post subject: |
|
|
Batya, извини, но сильно режет глаз вот это
Code: | If Not (f.Attributes and Attr) Then
f.Attributes = f.Attributes + Attr
End If |
А не лучше ли вот так будет все это написать
Code: | f.Attributes = f.Attributes Or Attr |
Операция OR корректно устанавливает атрибут вне зависимости от того присвоен ли он уже или нет (а And Not - снимает его так же корректно). |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Tue Mar 14, 2006 11:26 Post subject: |
|
|
Volniy
Ооо... Спасибо большое! Буду знать (я редко работал с битовыми комбинациями). |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Tue Mar 14, 2006 16:15 Post subject: |
|
|
2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Tue Mar 14, 2006 17:27 Post subject: |
|
|
Zorroz wrote: | 2Batya
Спасибо за скрипт!!! Файлы скрываются, все ОК.
Но он не работает на папках, почему-то. |
А я для папок и не менял атрибуты. Только для файлов в них.
Если это надо, то кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\SetAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Установка атрибута "Скрытый"
-1 |
Скрипт (немного поправленный и обобщенный) SetAttr.vbs:
Code: | '=====================================================================
' Установка атрибута у отмеченных файлов и папок (файлов в них)
' В параметрах вызова из 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 |
Last edited by Batya on Tue Mar 14, 2006 17:38; edited 1 time in total |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Tue Mar 14, 2006 17:35 Post subject: |
|
|
Для снятия атрибута кнопка:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RemoveAttr.vbs
%L 2
%COMMANDER_PATH%\Icons\X-Qute.icl,28
Снятие атрибута "Скрытый"
-1 |
Скрипт RemoveAttr.vbs:
Code: | '=====================================================================
' Снятие атрибута с отмеченных файлов и папок (файлов в них)
' В параметрах вызова из 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 |
|
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Wed Mar 15, 2006 12:35 Post subject: |
|
|
Кнопочка для резервного копирования файлов перечисленных в «c:\totalcmd\Plugins\Script\backup\totalcmd.txt» в «E:\Мои Документы\Я-Copy\totalcmd\». Причем имя файла выглядит как день.месяц.год.
Code: | 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 в плане скорости?
Last edited by Zorroz on Wed May 17, 2006 04:18; edited 1 time in total |
|
Back to top |
|
|
iov
Joined: 17 Mar 2005 Posts: 51
|
(Separately) Posted: Wed Mar 15, 2006 19:49 Post subject: |
|
|
Batya Quote: | А у тебя в параметре /X у winmerge расширение не указано. | Эти грабли я сразу отложил подальше, только вот с %COMMANDER_PATH% беда, попробовал лечить примерно так
Code: |
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 !!
Так! Я ночью в поле и кругом грабли!!
Желаемая кнопка! ( не пашет!)
Code: | 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, но это не решение проблемы а только способ её устранения!
в таком виде всё прекрасно работает!
Code: | 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
|
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|