Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение и переименовывание файла

Ответить
Настройки темы
CMD/BAT - Перемещение и переименовывание файла

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется файл допустим на диске C:\1234cv01.rar его нужно переместить в c:\arhiv\ с именем 1234rn??.rar (под знакоми вопроса имеется ввиду следующий порядковый свободный двухзначный номер), т.к. в данной папке уже имеются файлы 1234rn??.rar

Моих знаний CMD и VBS не хватает для этого, подскажите пожалуйста можно ли сделать такое батником (им предпочтительней) ?

Отправлено: 11:52, 27-07-2010

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion
Set src=C:\1234cv01.rar
Set out=c:\arhiv

For /L %%i In (0,1,99) Do (
	Set nb=0%%i
	Set nb=!nb:~-2!
	If Not Exist "%out%\1234rn!nb!.rar" (Move "%src%" "%out%\1234rn!nb!.rar" & Exit)
)

Отправлено: 12:21, 27-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


gora спасибо большое.

А если нужно переместить не один файл , а сразу несколько 1234cv??.rar , в эту папку переименовав в каждый по очереди ?

Отправлено: 13:40, 27-07-2010 | #3


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion
Set src=C:\1234cv??.rar
Set out=C:\arhiv

For %%a In ("%src%") Do Call :_mov "%%a"
Exit

:_mov
For /L %%i In (0,1,99) Do (
	Set nb=0%%i
	Set nb=!nb:~-2!
	If Not Exist "%out%\1234rn!nb!.rar" (Move "%~1" "%out%\1234rn!nb!.rar" & GoTo :EOF)
)
GoTo :EOF

Отправлено: 14:18, 27-07-2010 | #4


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


А можно аналогично мне подсказать?

Имеются 6 папок у меня:
of, og, or, on, oz, ov
В каждую папку скидываются однотипные файлы вида defs????.ft?, причем в любой папке может быть произвольное количество файлов.

И есть седьмая папка Sbor, куда я должен из каждой папки закинуть(переместить) файлы со всех предыдущих 6 папок.

Причем из каждой папки я должен назвать файл вида defs"имя папки"??.ft? Тоесть файлы из папки of будут называться defsof??.ft?

И конечно последние два символа как и в вашем примере должны генерироваться от 00 до 99 сами. А ft? каждый месяц меняется в июле он выгружается с 7 на конце в августе будет 8 и т.д., поэтому его жестко прописывать в бат файле не надо.

Помогите пожалуйста автоматизировать, а то работа очень трудоемкая и отнимает много времени.

Отправлено: 15:45, 27-07-2010 | #5


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Borg:
в августе будет 8 »
А в декабре 12?
Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion
Set src=of og or on oz ov
Set out=Sbor
Set msc=defs????.ft?

For %%f In (%src%) Do (
	Set tf=%%f
	For %%a In ("%%f\%msc%") Do Call :_mov "%%~nxa"
)
Exit

:_mov
For /L %%i In (0,1,99) Do (
	Set nb=0%%i
	Set nb=!nb:~-2!
	If Not Exist "%out%\defs!tf!!nb!%~x1" (Move "!tf!\%~1" "%out%\defs!tf!!nb!%~x1" & GoTo :EOF)
)
GoTo :EOF
Цитата Borg:
октябрь - a
ноябрь - b
декабрь - c »
поправил с учетом уточнения (хотя он и до этого работал)

Последний раз редактировалось gora, 29-07-2010 в 11:23. Причина: поправил с учетом уточнения


Отправлено: 18:48, 27-07-2010 | #6


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
А в декабре 12?
октябрь - a
ноябрь - b
декабрь - c

Отправлено: 07:38, 28-07-2010 | #7


Новый участник


Сообщения: 49
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброе время суток.
gora,
Цитата:
cho Off
SetLocal enabledelayedexpansion
Set src=C:\1234cv??.rar
Set out=C:\arhiv

For %%a In ("%src%") Do Call :_mov "%%a"
Exit

:_mov
For /L %%i In (0,1,99) Do (
Set nb=0%%i
Set nb=!nb:~-2!
If Not Exist "%out%\1234rn!nb!.rar" (Move "%~1" "%out%\1234rn!nb!.rar" & GoTo :EOF)
)
GoTo :EOF
В этом скрипте переименовывает только 100 файлов. Как написать что бы можно было переименовать все файлы?

Отправлено: 01:33, 19-06-2013 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение и переименовывание файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Переименовывание фотографии. Pika666 Цифровое изображение 7 06-10-2012 23:12
CMD/BAT - [решено] Переименовывание файла. В пути есть пробелы. starzkv Скриптовые языки администрирования Windows 9 08-02-2011 11:52
Загрузка - [решено] Перемещение или создание файла boot.ini SVt Microsoft Windows 2000/XP 11 02-07-2010 12:47
[решено] переименовывание пользователя charli22 Microsoft Windows 2000/XP 5 28-02-2006 16:12
Перемещение файла подкачки myan Хочу все знать 3 10-06-2005 12:02




 
Переход