View previous topic :: View next topic |
Author |
Message |
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Mon Jul 30, 2012 17:51 Post subject: |
|
|
obse wrote: | Скажите, можно ли написать bat-файл |
Вариант с поиском файлов (Alt+F7), выводом (из результатов поиска) файлов на панель и последующим копированием в нужный каталог с опцией “Автоматически переименовывать копируемые файлы” не устраивает? |
|
Back to top |
|
|
obse
Joined: 30 Jul 2012 Posts: 3
|
(Separately) Posted: Mon Jul 30, 2012 18:22 Post subject: |
|
|
sa
В TC конечно меня устраивает, но батник нужен на другой компьютер, где пользователь умеет только два раза кликнуть на файл. Там вообще проблемы с пользователем, именно поэтому и хотелось бы батник, чтоб все двумя кликами началось и закончилось.
Добавлено спустя 3 минуты:
Avada
Спасибо, я постараюсь усвоить. Наверно смысл похожий в ветке был, вот и подумал, что помогут. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jul 30, 2012 20:26 Post subject: |
|
|
obse
Сделать не проблема, только на данном форуме оффтоп. Тут решаются задачи в комбинации с ТС, что нетрудно понять из названия подфорума. С этим лучше сюда. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10284 Location: Россия, Саратов
|
(Separately) Posted: Mon Jul 30, 2012 23:35 Post subject: |
|
|
obse wrote: | Спасибо, я постараюсь усвоить. |
А ещё хорошо бы усвоить и вот это. Избыточное цитирование удалено.
Что касается привязки проблемы к TC или отсутствию таковой, тут уж прошу определиться однозначно. Как верно было сказано выше, без такой привязки поставленная задача — вне тематики данного форума. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
obse
Joined: 30 Jul 2012 Posts: 3
|
(Separately) Posted: Tue Jul 31, 2012 00:08 Post subject: |
|
|
Спасибо за поучения. Я же читаю, то сделать не проблема, это не проблема, а для меня проблема, вот и подумал, вдруг помогут. Ну нет, так нет, извините что с ложкой от каши в ваш суп залез. Совсем не сарказм, просто устал искать, ваш форум не первый.
Извините, удаляюсь. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Jul 31, 2012 21:06 Post subject: |
|
|
Буквы дисков заранее известны? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Sun Feb 10, 2013 03:35 Post subject: |
|
|
Tol!k
Давно изпользую ваш батник с счётчиком:
http://forum.wincmd.ru/viewpost.php?p=62933
В батнике я только заменил два пункта.
rem if "%pre%"=="" set "pre=%~n2" на if "%pre%"=="" set "pre=%~n2%~x2"
и
rem set "new=%pre%_%e%%ext%" на set "new=%pre%%ext%_bak%e%"
Сейчас батник создаёт бакап файлов/папок по схеме:
File.ext_bak1
File.ext_bak2
File.ext_bak3
Если стереть папку или файл File.ext_bak1, то хотелось бы что-бы при нажатие на кнопку создавался File.ext_bak4, а не File.ext_bak1. Иначе происходит путаниться.
И ещё, можно ли сделать так что-бы был виден процесс копирования. В xcopy это вроде делатеся через /L /F , но у меня почему-то не сработали эти параметры в батнике.
Заранее спасибо. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Feb 11, 2013 01:28 Post subject: |
|
|
а может лучше добавлять дату/время? |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Mon Feb 11, 2013 05:13 Post subject: |
|
|
Лутше конечно что-бы было по схеме File.ext_bak1.
Я как-то уж очень привык Притом время и дата не очень критичны для меня, а глаза мозолить будут. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 11, 2013 15:47 Post subject: |
|
|
Я знаю, почему Tol!k не хочет. Там с числовой сортировкой отфильтрованного по шаблону списка надо ковыряться.
Я уже нечто подобное для папок делал, но там реализация не ахти.
Могу и тут на vbs, но не сразу. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon Feb 11, 2013 17:14 Post subject: |
|
|
да, дело в сортировке
Quote: | z:\>dir /b/oe File.ext_bak*
File.ext_bak1
File.ext_bak10
File.ext_bak9 |
но не только. Нужно ещё выкусить номер из имени, а с этим могут возникнуть проблемы из-за спецсимволов |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 11, 2013 17:55 Post subject: |
|
|
Tol!k wrote: | Нужно ещё выкусить номер из имени | Сперва надо получить массив по фильтру, а потом уже выкусывать. Через set, я полагаю? На vbs с этим, конечно, проще.
А ещё нужно предупреждать такие моменты: name (3) (4).exe, т.е. считывать скобки (или что там) с конца. Плюс ко всему, не помешает проверять уже существующие имена с номером, и если курсор на таком файле, то не добавлять номер ко всему имени, а копировать со сменой только номера, взятого из последнего элемента массива. В массиве, ест., могут быть на конце нечисловые символы в заглушах, их нужно отсекать в цикле, отнимая от номера массива поединично, пока условие не достигнет числового статуса. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Iori
Joined: 25 Apr 2012 Posts: 551
|
(Separately) Posted: Mon Feb 11, 2013 19:52 Post subject: |
|
|
Tol!k
Не знаю если это поможет, но я больше 10-ти бекапов папки/файла не использую. Можно даже сделать от File.ext_bak1 до File.ext_bak9
Может это можно сделать через IF NOT EXIST команду. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Feb 16, 2013 22:39 Post subject: |
|
|
Iori
Code: | '•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' Cоздать указанное число копий для каждого выбранного элемента
' с добавлением счётчика в скобках, начиная с последнего номера
' Параметры: %WL "<путь назначения>" <число копий>
' Пример: %WL "%P" 5
' Автор - Flasher ©
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
With WScript.Arguments
If .Count = 0 Then WScript.Quit
If .Count <> 3 Then MsgBox "Должно быть указано три параметра!", 48 : WScript.Quit : End If
List = .Item(0) : Path = .Item(1) : Count = .Item(2)
End With : If Right(Path, 1) <> "\" Then Path = Path & "\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Path)
Set SFolds = Folder.SubFolders : Set SFiles = Folder.Files
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1, -1).ReadAll, vbNewLine)
If F <> "" Then
If FSO.FolderExists(F) Then Test = 1 Else Test = 0
If Test Then Set SF = SFolds Else Set SF = SFiles
TestF F, Ext, Ent, BN
If Ent And Right(BN, 1) = ")" Then
M = Mid(BN, Ent + 1, Len(BN) - Ent - 1)
If IsNumeric(M) Then Max = CLng(M)
BN = Left(BN, Ent - 2)
End If
For Each FF in SF
TestF FF, Ext1, Ent1, BN1
If Ext = Ext1 And BN & " (" = Left(BN1, Len(BN) + 2) Then
If Ent1 And Right(BN1, 1) = ")" Then
Num = Mid(BN1, Ent1 + 1, Len(BN1) - Ent1 - 1)
If IsNumeric(Num) Then
Num = CLng(Num) : If Max < Num Then Max = Num
End if
End If
End If
Next
For i = 1 To Count
If Test Then FSO.GetFolder(F).Copy Path & BN & " (" & Max + i & ")", 0 _
Else FSO.CopyFile F, Path & BN & " (" & Max + i & ")." & Ext, 0
Next
End If : Set SF = Nothing
Next : Set SFiles = Nothing : Set SFolds = Nothing
Set Folder = Nothing : Set FSO = Nothing : WScript.Quit
Sub TestF(Fl, Ex, E, B)
If FSO.FolderExists(Fl) Then
B = FSO.GetFileName(Fl)
Else
B = FSO.GetBaseName(Fl) : Ex = LCase(FSO.GetExtensionName(Fl))
End If : E = InStrRev(B, "(")
End Sub | Вместо сортировки по старинке - максимум.
Понимает имена с юникодными символами.
Выбраны могут быть в т.ч. элементы <имя (№)>, будут создаваться <имя (№+1)>.
В случае, если получатель отличается от источника, и в нём нет копий со счётчиком, отчёт будет идти от № текущего элемента. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
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
|