есть папка Artist - Album, в ней нн-ое количество треков (обычно 10-15 - стандартный мп3-альбом)
нужно:
заархивировать все мп3 и cover.jpg в каталоге в архив с названием папки, чтобы вышло
Код: Выделить всё
Artist - Album.zip\01. ***. mp3 Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Код: Выделить всё
Artist - Album.zip\01. ***. mp3 http://forum.wincmd.ru/viewtopic.php?p=54819#54819ADv писал(а):заархивировать все мп3 и cover.jpg в каталоге в архив с названием папки
В функции GetFileName вместо строкиlaburj писал(а):а можно ли изменить скрипт так, чтобы название создаваемого файла состояло не из указанного количества слов, а из целой первой строчки содержимого буфера до перехода на следующую строку?
Код: Выделить всё
GetFileName = GetSomeWords(lText, NumWords) Код: Выделить всё
GetFileName = Left(lText, InStr(lText, vbNewLine) - 1) Нужно удалить или закомментировать (поставить знак апострофа в начале) строки:laburj писал(а):и как отключить сообщение о предложении создать файл, чтобы файл создавался без подтверждения?
Код: Выделить всё
Btn = MsgBox(Text, vbYesNo + vbQuestion, Title)
If Btn = 7 Then Quit 0 в этом случае возникает сообщение с ошибкой:Batya писал(а):напишиКод: Выделить всё
GetFileName = Left(lText, InStr(lText, vbNewLine) - 1)
Прошу прщения, написал не проверяя.laburj писал(а):в этом случае возникает сообщение с ошибкой
Код: Выделить всё
Function GetFileName(pText)
Dim lText, lPos, Char
lPos = InStr(pText, vbNewLine)
If lPos > 0 Then
lText = Left(pText, lPos - 1)
Else
lText = pText
End If
For Each Char In CharArr
lText = Replace(lText, Char, ReplaceChar)
Next
GetFileName = Trim(lText)
End FunctionДобавил "Trim" - см. выше.Batya писал(а):всё отлично, только в конце названия файла остаётся пробел, можно его убрать?
В конце основного тела скрипта после строки "FSO.OpenTextFile(FileName, 2, True).Write Clip" добавь:laburj писал(а):и можно ли изменить скрипт так, чтобы созданный файл в конце открывался?
Код: Выделить всё
CreateObject("WScript.Shell").Run FileName, 7, Falseвозникает сообщение с ошибкой:Batya писал(а):В конце основного тела скрипта после строки "FSO.OpenTextFile(FileName, 2, True).Write Clip" добавь:Код: Выделить всё
CreateObject("WScript.Shell").Run FileName, 7, False
Код: Выделить всё
CreateObject("WScript.Shell").Run """" & FileName & """", 7, FalseКод: Выделить всё
CreateObject("WScript.Shell").Run """" & FileName & """", 1, FalseПримерно такой vbs:laburj писал(а):хотелось бы скрипт, после запуска которого в противоположной панели на новой вкладке открывался слегка изменённый путь активной вкладки.
Код: Выделить всё
'=============================================================================
' Открытие в противоположной панели на новой вкладке 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