Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/56: Рейтинг темы: голосов - 56, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7

Копирование последнего созданного файла в последнюю созданную папку

31.03.2016, 14:52. Показов 12142. Ответов 13

Студворк — интернет-сервис помощи студентам
Прошу помощи.
Есть задача - создать папку с текущей датой в директории D:\PAY01\1\B0001\ (допустим 2016\2016-03\2016-03-30) и копировать последний созданный файл из папки D:\PAY01\1\ в последнюю созданную папку (D:\PAY01\1\B0001\2016\2016-03\2016-03-30), а затем этот же файл перенести из папки D:\PAY01\1\ в папку C:\Converter\2\b\
Действия необходимо совершать именно в такой последовательности и с такими условиями.
Есть такой код, подскажите как мне его доработать до полного функционала?
Заранее благодарю.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
md D:\PAY01\1\B0001\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%
 
set dir1=D:\PAY01\1\
set dir2=C:\Converter\2\b\
::Баланс            
setlocal enabledelayedexpansion
set /a num=0
set /a err=0
for /f "tokens=* delims=" %%1 in ('dir /b /o:-d /t:W "%dir1%\B0001_*.*"') do (
set /a num+=1
if /i !num! leq 1 (
move "%dir1%\%%1" "%dir2%" > nul 
if errorlevel 1 (echo %%1 >> errorslog.txt
set /a err+=1
)
echo copy file...%%1) else (
echo skip file... %%1
)
)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2016, 14:52
Ответы с готовыми решениями:

Копирование файла в созданную папку
Здравствуйте! помогите написать батник. Задача такая батник будет лежать на рабочем столе. В директории...

Поиск на компьютере INI-файла и копирование найденного файла в папку определенного пользователя
Нужна ваша помощь! Нужно найти файл с расширением .ini и скопировать его в папку Пользователи\(имя пользователя. на каждом компьютере...

Копирование файла в неизвестную папку
Доброго времени суток! Помогите с копированием файла через xcopy в единственную в папке неизвестную папку. ------- Пример команды: ...

13
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
31.03.2016, 16:32
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
  setlocal
    set "from=D:\PAY01\1" % rem : откуда берется файл
    for /f "tokens=4" %%i in (
      'dir /tc "%from%" ^| sort'
    ) do set "last=%from%\%%i" % rem : последний созданный файл
    for /f "tokens=1,2,3 delims=." %%i in ("%date%") do (
      set "des=%from%\B0001\%%k\%%k-%%j\%%k-%%j-%%i"
    )
    md %des% % rem : создали папку
    for %%i in (%des%;C:\Converter\2\b) do copy "%last%" %%i>nul
  endlocal
exit /b
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
31.03.2016, 18:31  [ТС]
Благодарю за ответ, но код выполняет задачу не полностью - только создает папку за текущий день. Файлы не переносит. Объясните пожалуйста подробней, возможно я сам чего-то не понял.

Добавлено через 20 минут
Добавлю, после использования в папке C:\Converter\2\b\ создаются две папки ёючфрыш и яряъє
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
31.03.2016, 19:52
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
Setlocal EnableDelayedExpansion
 
md "%userprofile%\desktop\%date%"
for /f "usebackq tokens=*" %%a in (`dir /o:-d /b "%userprofile%\desktop\1"`) do (
set /a c+=1
if "!c!"=="1" (xcopy "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\%date%"&&move "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\2\%%a" )
)
pause
Добавлено через 16 минут
еще можно убрать строчку создания папки.И дописать после xcopy вот это: /i
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
31.03.2016, 21:48  [ТС]
Все равно не работает, даже не создает папку с текущей датой. Подскажите в чем проблема?
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
31.03.2016, 22:14
что-то ты не то делаешь ......
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
01.04.2016, 21:51  [ТС]
Возможно я неправильно объяснил.
Структура папок следующая:
D:\PAY01\1\ - в ней и лежат нужные файлы
D:\PAY01\1\B0001\ - здесь должна создаваться структура папок с текущей датой год\год-месяц\год-месяц-день
Задача - скопировать последний созданный файл из папки D:\PAY01\1\ в папку D:\PAY01\1\B0001\текущий год\год-месяц\год-месяц-день
и после этого переместить этот же файл из D:\PAY01\1\ в C:\Converter\2\b\
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
01.04.2016, 22:14
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
Setlocal EnableDelayedExpansion
 
for /f "usebackq tokens=1" %%a in (`dir /o:-d /b "%userprofile%\desktop\1"`) do (
set /a c+=1
if "!c!"=="1" (xcopy /i "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\%date:~-4%\%date:~-7%\%date%\"&&move "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\2\%%a")
)
pause
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
02.04.2016, 00:27
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Turtain Посмотреть сообщение
D:\PAY01\1\ - в ней и лежат нужные файлы
D:\PAY01\1\B0001\ - здесь должна создаваться структура папок с текущей датой год\год-месяц\год-месяц-день
Задача - скопировать последний созданный файл из папки D:\PAY01\1\ в папку D:\PAY01\1\B0001\текущий год\год-месяц\год-месяц-день
и после этого переместить этот же файл из D:\PAY01\1\ в C:\Converter\2\b\
Windows Batch file
1
2
3
4
@echo off
md "D:\PAY01\1\B0001\%date:~6,4%\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%"
dir/a-d/b/o-d/tc "D:\PAY01\1"|(cmd/v/c "set/p x=&copy "D:\PAY01\1\!x!" "D:\PAY01\1\B0001\%date:~6,4%\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%\"&move "D:\PAY01\1\!x!" "C:\Converter\2\b\"")
exit
.
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
02.04.2016, 00:41  [ТС]
Цитата Сообщение от ZoOoO Посмотреть сообщение
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
Setlocal EnableDelayedExpansion
 
for /f "usebackq tokens=1" %%a in (`dir /o:-d /b "%userprofile%\desktop\1"`) do (
set /a c+=1
if "!c!"=="1" (xcopy /i "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\%date:~-4%\%date:~-7%\%date%\"&&move "%userprofile%\desktop\1\%%a" "%userprofile%\desktop\2\%%a")
)
pause
Теперь другая ошибка - отказано в доступе. Сам батник будет запускаться не из-под администратора. Есть ли возможность обойти проблему с доступом?

Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
1
2
3
4
@echo off
md "D:\PAY01\1\B0001\%date:~6,4%\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%"
dir/a-d/b/o-d/tc "D:\PAY01\1"|(cmd/v/c "set/p x=&copy "D:\PAY01\1\!x!" "C:\Users\Papenko\Desktop\PAY01\1\B0001\%date:~6,4%\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%"&move "D:\PAY01\1\!x!" "C:\Converter\2\b\"")
exit
Все хорошо, но не копирует файл в папку текущего дня - папка создается пустой.
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
02.04.2016, 01:12
Может быть и есть.Обычные учетные записи и создаются для того,что бы нельзя было установить программу на компьютер или скопировать,или перезаписать файл.
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
02.04.2016, 08:46  [ТС]
Благодарю всех за помощь, код ZoOoO работает отлично, корю себя за невнимательность.
Извиняюсь что опять прошу помощи, но может кто подсказать, как копировать из одной папки в другую не просто последний созданный файл, а только файл созданный за текущий день, не трогая другие файлы?
Еще раз заранее спасибо.
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
02.04.2016, 13:41
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от Turtain Посмотреть сообщение
... как копировать из одной папки в другую не просто последний созданный файл, а только файл созданный за текущий день, не трогая другие файлы?


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
 
set "src=D:\PAY01\1"
set "dest1=D:\PAY01\1\B0001"
set "dest2=C:\Converter\2\b"
 
dir/a-d/o-d/tc "%src%\"| findstr/bl %date%| (
cmd/v/c set/p x=^^^& if defined x (^
 set x=!x:~36!^^^&^
 xcopy/hkqry "%src%\!x!" "%dest1%\%date:~6,4%\%date:~6,4%-%date:~3,2%\%date:~6,4%-%date:~3,2%-%date:~0,2%\"^^^&^
 move/y "%src%\!x!" "%dest2%\"^
^ ^^^) else echo Нет сегодняшнего файла!
)
 
exit/b
.
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 7
03.04.2016, 17:32  [ТС]
Спасибо огромное всем за помощь. Надеюсь кому-нибудь еще все это пригодится.
Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2016, 17:32
Помогаю со студенческими работами здесь

Копирование последнего файла
Всем привет. Помогите со скриптом cmd Нужно с одной папки скопировать последний файл по дате в другую папку.

Копирование файла по дате в другую папку
Ребят заранее извиняюсь. Может слишком глупый вопрос. Мне нужно написать бат-файлик. Я имею папку с бэкапами формата...

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

Копирование каждого файла из папки в отдельную папку
Для выполнения некоторых задач на работе необходимо скопировать из папки, допустим, Camera_1 *.jpeg файлы каждый в отдельную папку, а затем...

Копирование в текущую папку определённого файла из определённой папки
Здравствуйте. Прошу помоши т.к. далек от кодов. Нужно из определенной папки скопировать определенный фаил и вставить в текущую папку (папка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru