|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование и копирование файлов |
|
CMD/BAT - [решено] Переименование и копирование файлов
|
Пользователь Сообщения: 60 |
Профиль | Отправить PM | Цитировать Добрый день! Хочу создать батник, который бы переименовывал файлы в папке и копировал их в итоговую "Total"
Есть две папки, "1" и "2" и в обеих лежат файлы c именами: check1,check2,check3.... и т.д Нужно чтобы нумерация начиналась с 001 и к имени добавлялся номер папки. например check001_1, check002_1, check003_1 - это для папки "1" и например check001_2, check002_2, check003_2 - для папки "2" файлов может быть более тысячи Для меня это нереально( Пробовал только переименовывать вот таким кодом for /f "tokens=*" %%a in ('dir /b C:\Onkassa\Rename\1\*.*') do ren C:\Onkassa\Rename\1\%%a 001_1%%a в итоге переименован только первый файл 001_1check |
|
Отправлено: 11:24, 17-08-2018 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Скрытый текст
Ну дык как всегда... Табличка внизу слева.
|
|
------- Отправлено: 22:43, 22-08-2018 | #71 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 60
|
Профиль | Отправить PM | Цитировать megaloman,
Цитата megaloman:
После изменений скрипт отработал именно так как надо!!! (см. результат работы.jpg) Но при этом я получил сообщение, которое мне непонятно.(см.сообщение.jpg) |
|
Отправлено: 09:14, 23-08-2018 | #72 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать jordan_74, переименуйте Ваш батник c расширением .TXT и прикрепите к сообщению. Похоже, вместо
GoTo :Eof У вас где-то GoTo :Eo Или GoTo :Eo f То есть, скопипастили код криво, или случайно извратили. |
------- Последний раз редактировалось megaloman, 23-08-2018 в 10:08. Отправлено: 10:01, 23-08-2018 | #73 |
Пользователь Сообщения: 60
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:08, 23-08-2018 | #74 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать jordan_74, предчувствия меня не обманули, самый последний GoTo :Eof у вас GoTo :Eo
А отрабатывает нормально, так как без этой строки в принципе можно и обойтись. Я обычно ей обозначаю конец подпрограммы, и, если вы далее ничего не наваяете своего, она не обязательна Цитата:
|
|
------- Последний раз редактировалось megaloman, 23-08-2018 в 10:46. Отправлено: 10:16, 23-08-2018 | #75 |
Пользователь Сообщения: 60
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 11:10, 23-08-2018 | #76 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Доброе утро. Прошу помощи при создании кода.
Необходимо файл 1.txt из папки с:\1\ скопировать в папку c:\2\ но с другим именем. Можно дату и время в место имени. Ее раззапускаю батник, он снова копирует, но с другим уже именем. Заранее благодарю |
Отправлено: 08:51, 07-10-2018 | #77 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=c:\1\1.txt set sDestFolder=c:\2 if exist "%sSourceFile%" ( if exist "%sDestFolder%\." ( for /f "usebackq delims=" %%i in ( `2^>nul wmic.exe OS get LocalDateTime /value ^| find.exe /i "LocalDateTime"` ) do for /f "delims=+-" %%j in ("%%i") do set s%%j set sLocalDateTime=!sLocalDateTime:.=! set sNewFileName=!sLocalDateTime:~0,-3!.txt >nul copy /y "%sSourceFile%" "%sDestFolder%\!sNewFileName!" ) else ( echo Can't find destination folder [%sDestFolder%]. exit /b 2 ) ) else ( echo Can't find source file [%sSourceFile%]. exit /b 1 ) endlocal exit /b 0 |
Отправлено: 11:53, 07-10-2018 | #78 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать Iska, Пытаюсь понять смысл задачи. Один и тот же неизменный файл копировать много раз с разными именами - нонсенс. Другое дело, копировать исходный файл с включением в имя времени последнего изменения - смысл усматриваю.
@Echo Off Call :@Files "C:\1\1.txt" "C:\2" GoTo :Eof :@Files If Not Exist %1 (Echo %1 -file not found &Exit /B 2) If Not Exist %2 (Echo %2 -folder not found &Exit /B 2) Set "Fin=%~1" For /f "tokens=1* delims=," %%a in ('wmic datafile where "name='%Fin:\=\\%'" get 'Last Modified' /format:csv') Do ( If /I "%%a"=="%ComputerName%" Set "Df=%%b" ) If Exist "%~2\%~n1_%Df:~0,14%%~x1" (Echo file already exists "%~2\%~n1_%Df:~0,14%%~x1" &Exit /B 0) Set Command=Copy %1 "%~2\%~n1_%Df:~0,14%%~x1" %Command% >nul Set "Err=%ErrorLevel%" If Not %Err%==0 (Echo Command not successful &Echo %Command% &Exit /B %Err%) Exit /B 0 Где ГГГГММДДччммсс -время последнего изменения файла |
------- Последний раз редактировалось megaloman, 07-10-2018 в 15:25. Отправлено: 15:19, 07-10-2018 | #79 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Первый раз скопируется с тем же именем в нужную папку (будет создана при отсутствии)
При последующих копированиях к имени будет добавляться дата и время (если из под dir убрать \%f%, условие будет распространяться на все файлы в папке и подпапках 1, соблюдая структуру при этом) @echo off set "d1=C:\1" set "d2=C:\2" set "f=1.txt" set "stime=%time:~,8%" for /f "delims=" %%a in ('dir /a-d/b/s "%d1%\%f%"') do set "d=%%a"& call :l "%%a" "%%d:%d1%=%d2%%%" pause& exit :l 2>nul md "%~dp2" if not exist "%~2" (>nul copy "%~1" "%~2") else (>nul copy "%~1" "%~dp2%~n1_%date%_%stime::=.%%~x1") exit /b |
Последний раз редактировалось alpap, 07-10-2018 в 15:41. Отправлено: 15:36, 07-10-2018 | #80 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переименование папки и копирование новой из сети. | Lorttt | Скриптовые языки администрирования Windows | 19 | 19-06-2017 18:56 | |
CMD/BAT - Копирование файла и переименование согласно списка из exel | TPOJIb_55 | Скриптовые языки администрирования Windows | 4 | 01-06-2016 09:28 | |
CMD/BAT - Копирование файлов из подкаталогов и их переименование в название папки | lexxxyatina | Скриптовые языки администрирования Windows | 7 | 13-11-2014 09:44 | |
CMD/BAT - [решено] Копирование и переименование файла по особой маске | DARK-Silver666 | Скриптовые языки администрирования Windows | 5 | 20-12-2012 21:22 | |
VBS/WSH/JS - [решено] переименование и копирование папки | Anufriev | Скриптовые языки администрирования Windows | 6 | 22-05-2012 08:11 |
|