Batya

|
Posted: Mon Nov 09, 2009 19:00 Post subject: |
|
|
laburj wrote: | хотелось бы скрипт, после запуска которого в противоположной панели на новой вкладке открывался слегка изменённый путь активной вкладки. |
Примерно такой vbs:
Code: | '=============================================================================
' Открытие в противоположной панели на новой вкладке TC
' слегка изменённого пути активной вкладки.
'
' Параметры:
' {текущая папка}
'
' Пример параметров при вызове из TC:
' "%P"
'
' Автор - Batya
'=============================================================================
Option Explicit
Dim Repl, IsCreate
Set Repl = CreateObject("Scripting.Dictionary")
'======== Изменяемые параметры ===============================================
' Массив заменяемых значений
Repl.Add "soft_not_tested", "soft_on_dvd"
Repl.Add "Пример 1", "Пример 2"
IsCreate = False 'Признак создания папки, если полученный путь не существует
'=============================================================================
Dim Mess, FSO, WSH, FF, IsFound
SetMess
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
On Error Resume Next
CheckParam:CheckErr
On Error GoTo 0
Main
Quit 0
Sub Main
Dim K, TC
IsFound = False
For Each K In Repl.Keys
If InStr(1, FF, K, vbTextCompare) > 0 Then
FF = Replace(FF, K, Repl(K), 1, -1, vbTextCompare)
IsFound = True
Exit For
End If
Next
If IsFound Then
If IsCreate Then
BuildTree FF
Else
FF = ExistsLevel(FF)
End If
TC = """" & GetPath("%Commander_Path%\totalcmd.exe") & """"
WSH.Run TC & " /O /S /T /R=""" & FF & """", 1, False
End If
End Sub
Sub SetMess
Set Mess = CreateObject("Scripting.Dictionary")
With Mess
.Add 0, "Открытие в TC вкладки с изменённым путём"
.Add 1, "Не указаны параметры!"
End With
End Sub
Sub CheckParam
If WScript.Arguments.Count = 0 Then Err.Raise vbObjectError + 1, "", Mess(1)
FF = GetPath(WScript.Arguments(0))
End Sub
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function
Function ExistsLevel(pPath)
If FSO.FileExists(pPath) Or FSO.FolderExists(pPath) Then
ExistsLevel = pPath
Else
ExistsLevel = ExistsLevel(FSO.GetParentFolderName(pPath))
End If
End Function
'Создание дерева папок
Sub BuildTree(pFolder)
Dim lPF
lPF = FSO.GetParentFolderName(pFolder)
If Not FSO.FolderExists(lPF ) Then BuildTree lPF
If Not FSO.FolderExists(pFolder) Then FSO.CreateFolder pFolder
End Sub
Function MessBox(pMess, pMode)
Dim lIcon
Select Case pMode
Case 1 lIcon = vbCritical + vbOKOnly
Case 2 lIcon = vbExclamation + vbOKOnly
Case 3 lIcon = vbInformation + vbOKOnly
End Select
MessBox = MsgBox(pMess, lIcon, Mess(0))
End Function
'Проверка, нет ли ошибок
Sub CheckErr
If Err.Number <> 0 Then
MessBox Mess(0) & vbNewLine & vbNewLine & "Возникла ошибка № " &_
Err.Number & ":" & vbNewLine & Err.Description, 1
Quit Err.Number
End If
End Sub
Sub Quit(pQuitCode)
Set Repl = Nothing
Set Mess = Nothing
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit pQuitCode
End Sub |
_________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Wed Nov 11, 2009 12:50; edited 1 time in total |
|