Копирование с переименовыванием по счетчику
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, ... 11, 12, 13  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: Tol!kLocation: Арзамас PostPosted: Mon May 02, 2011 18:17
    —
Тупо
Code:

cmd=cmd /c title Копия... &for %u in (
param=%S) do (echo f|xcopy/y/c/h/r/k/z %%u "Копия %%~u"&echo f|xcopy/y/c/h/r/k/z %%u "Копия %%~nu (2)%%~xu"&echo f|xcopy/y/c/h/r/k/z %%u "Копия %%~nu (3)%%~xu"&echo f|xcopy/y/c/h/r/k/z %%u "Копия %%~nu (4)%%~xu"&echo f|xcopy/y/c/h/r/k/z %%u "Копия %%~nu (5)%%~xu")

Не знаю как в em_
но чтобы уместить 5 копий в кнопку, пришлось пожертвовать 1 ключём

#17:  Author: FlasherLocation: Москва PostPosted: Tue May 03, 2011 02:09
    —
Tol!k wrote:
Тупо
Универсализируем?

Для тех, кому необходимо часто создавать статическое число копий:
Code:
' Cоздать указанное число копий для каждого выделенного файла
' вида "<имя_файла> (x)" с приращением x+1 по счётчику"
' Параметры: %L "<путь назначения>\" "первая цифра счётчика" "число копий"
' Пример: %L "%P" 2 5
'=======================================================
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TempFile.AtEndOfStream
Set File = .GetFile(TempFile.ReadLine)
For i=WScript.Arguments(2) to Abs(WScript.Arguments(3))+Abs(WScript.Arguments(2))-1
File.Copy WScript.Arguments(1)&.GetBaseName(File)&" ("&i&")."&.GetExtensionName(File),False
next
Loop
End With

Для тех, кому требуется вводить разное число копий для разных ситуаций:
Code:
' Cоздать копии (с указанием их кол-ва) для каждого выделенного
' файла вида "<имя_файла> (x)" с приращением x+1 по счётчику"
' Параметры: %L "<путь назначения>\" "первая цифра счётчика"
' Пример: %L "%T" 1
'=======================================================
Count = InputBox("Введите число копий для каждого файла",_
"Копирование выделенных файлов по счётчику")
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TempFile.AtEndOfStream
Set File = .GetFile(TempFile.ReadLine)
For i=WScript.Arguments(2) to Abs(Count)+Abs(WScript.Arguments(2))-1
File.Copy WScript.Arguments(1)&.GetBaseName(File)&" ("&i&")."&.GetExtensionName(File),False
next
Loop
End With

Слегка поправил свой старый скрипт для схожей задачи. Решил обойтись без слова "Копия". Хотя это легко поправимо:
Quote:
File.Copy WScript.Arguments(1)&"Копия "&File.Name,False
For i=WScript.Arguments(2) to Abs(WScript.Arguments(3))+Abs(WScript.Arguments(2))-2
File.Copy WScript.Arguments(1)&"Копия "&.GetBaseName(File)&" ("&i&")."&.GetExtensionName(File),False

#18:  Author: ask-rusLocation: Russian Federation PostPosted: Tue May 03, 2011 09:00
    —
Tol!k wrote:
но чтобы уместить 5 копий в кнопку, пришлось пожертвовать 1 ключём

Не критично? Чтобы идеально давай сократим до 3-х копий, у меня не выходит.

Добавлено спустя 13 минут 18 секунд:

Flasher wrote:
Хотя это легко поправимо

Аналогично, не смог поправить. Менял две строки скрипта на эти три - ошибки.

#19:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Tue May 03, 2011 12:55
    —
http://powerpro.wincmd.ru/Scripts/Duplicate.htm

#20:  Author: FlasherLocation: Москва PostPosted: Tue May 03, 2011 14:06
    —
ask-rus wrote:
Менял две строки скрипта на эти три - ошибки.
Значит учтено не всё: скрипт(1/2), параметры. Если второе, то и без замены ошибки будут.

#21:  Author: Tol!kLocation: Арзамас PostPosted: Mon May 09, 2011 12:07
    —
Предыстория. Если в имени есть & или ) и нет пробела, то
Code:
for %%U in (%S) do ...
работать не будет. Лучше так
Code:
[em_FileCopy]
button=%COMMANDER_PATH%\wcmicons.dll,3
cmd=%ComSpec% /c title Копия... &for /f "delims=" %u in ('type
param=%WL') do (echo f|xcopy/y/c/h/r/k/z "%%~u" "%%~du%%~pu\Копия %%~nu%%~xu"&echo f|xcopy/y/c/h/r/k/z "%%~u" "%%~du%%~pu\Копия %%~nu (2)%%~xu"&echo f|xcopy/y/c/h/r/k/z "%%~u" "%%~du%%~pu\Копия %%~nu (3)%%~xu"&echo f|xcopy/y/c/h/r/k/z "%%~u" "%%~du%%~pu\Копия %%~nu (4)%%~xu"&echo f|xcopy/y/c/h/r/k/z "%%~u" "%%~du%%~pu\Копия %%~nu (5)%%~xu")
iconic=1
menu=Атака клонов


ask-rus wrote:
> пришлось пожертвовать 1 ключём
Не критично?
В данном случае (копирование в ту же самую папку) не имеет значения.

#22:  Author: FlasherLocation: Москва PostPosted: Fri May 20, 2011 06:52
    —
shveicar wrote:
В данном случае я имел в виду скрипт позволяющий создать с помощью кнопки сразу 100 папок
>>>
Code:
' Cоздать каталоги (с указанием их кол-ва) c именами выделенных
' папок/файлов вида "<имя_папки> (x)" с приращением x+1 по счётчику"
' Параметры: %L "<путь назначения>\" "первая цифра счётчика"
' Пример: %L "%T" 1
'=======================================================
Count = InputBox("Введите число копий для каждой папки",_
"Создание папок по счётчику")
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
  On Error Resume Next
Do While Not TempFile.AtEndOfStream
Set Folder = .GetFolder(TempFile.ReadLine)
Set File = .GetFile(TempFile.ReadLine)
  For i=WScript.Arguments(2) to Abs(Count)+Abs(WScript.Arguments(2))-1
    .CreateFolder WScript.Arguments(1)&.GetBaseName(Folder)&" ("&i&")"
    .CreateFolder  WScript.Arguments(1)&.GetBaseName(File)&" ("&i&")"
  next
Loop
End With

#23: Клонирование файла Author: DeathStalkerLocation: Санкт-Петербург PostPosted: Fri Oct 21, 2011 08:58
    —
Интересует клонирование файла(ов), как сделать из одного файла несколько. К сожалению по поиску не нашел.

#24:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Oct 21, 2011 09:24
    —
DeathStalker wrote:
Интересует клонирование файла(ов), как сделать из одного файла несколько.
F5 не пробовал?

Какой вопрос, такой ответ.

#25:  Author: DeathStalkerLocation: Санкт-Петербург PostPosted: Fri Oct 21, 2011 09:30
    —
хм, не совсем понимаю как с помощью F5 быстро сделать 200 копий файла...

Извиняюсь, если вопрос показался не совсем понятным.
Как результат ожидается увидеть заданное количество файлов например с тем же именем + счетчик.

#26:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Oct 21, 2011 09:54
    —
Следовало в первом посте ясно изложить задачу, телепатов тут нет. В первом посте нет ни слова про количество копий.

Интересно, какой вообще смысл в таком количестве копий одного и того же файла? Может, с тем же успехом можно просто создать пустых файлов?

#27:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Oct 21, 2011 10:15
    —
DeathStalker
bat-файл
Code:
for /L %%i in (1,1,200) do copy file.txt file%%i.txt

#28:  Author: DeathStalkerLocation: Санкт-Петербург PostPosted: Fri Oct 21, 2011 10:17
    —
MVV wrote:
Следовало в первом посте ясно изложить задачу, телепатов тут нет. В первом посте нет ни слова про количество копий.

Если бы мне нужно 1 копия файла, я бы тему не создавал.

Копии файлов мне нужны были для создания из нескольких сгенерированных bmp файлов клип avi (создаю плагином avi). Т.к. я сейчас ограничен во времени, искать другие способы создания клипа avi некогда. Собственно я уже все что надо сделал в ручную.
Но ответ на вопрос все равно интересует, может пригодиться в будущем. Причем желательно ответ в виде небольшого скрипта для консоли чтобы его можно было повесить на кнопку.

Добавлено спустя 33 секунды:

Maximus
Большое спасибо!

#29:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Oct 21, 2011 10:42
    —
Code:
@echo off
if -%3==- echo Parameters: %%P%%N [first_number last_number]&pause&goto :EOF
set maxn=9
:maxnl
if %3 leq %maxn% goto maxnok
set maxn=9%maxn%
goto maxnl
:maxnok
echo %maxn%
for /l %%i in (%2,1,%3) do call :go %1 %%i
goto :EOF

:go
set num=%2
if 1%num% geq %maxn% goto zerok
set num=0%num%
:zerok

echo copy %1 "%~dpn1%num%%~x1"
goto :EOF

Такой файл будет создавать нумерованные копии с дополнительными нулями в числах, чтобы число цифр было одинаковым. Запускать кнопкой с параметрами %P%N 1 200 - это создаст копии с номерами от 001 до 200, дописанными в конец имени перед расширением.

#30:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Fri Oct 21, 2011 10:46
    —
Для полноты картины.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, ... 11, 12, 13  Next  :| |:
Page 2 of 13

Powered by phpBB © 2001, 2005 phpBB Group