Показать полную графическую версию : Переименовать и переместить файлы
Уважаемые гуру!
ПО формирует текстовые файлы отчетов, со следующими именами:
АБВГ Abcdxxx - dd-mm-yy hh-mm-ss.txt
Необходимо:
1. Отслеживать появление файлов в папке отчетов - C:\Отчеты
2. Приводить имя файла к сл.виду Abcdxxx_dd-mm-yy_hh-mm-ss.txt
3. Перемещать переименованные файлы в папку C:\OUT
Помогите пожалуйста с написанием данного bat-ника, OC Win2000.
Foreigner
12-05-2013, 10:13
1. Отслеживать появление файлов в папке отчетов - C:\Отчеты
Это лучше в расписание.
OC Win2000
Попробуйте:
@echo off
1>nul chcp 1251
pushd "c:\отчеты" || goto:eof
for /f "tokens=*" %%i in (' dir /b *.txt ') do call:1 "%%i"
popd
1>nul chcp 866
goto:eof
:1
set "file=%~1"
move %1 "с:\out\%file: =_%"
Увы, но ничего не переименовывает и не перемещает :cry:
Foreigner
12-05-2013, 13:12
vider,
Мне сложно судить, что не так. В какой кодировке батник? Да и винтукей оставляет некоторую настороженность, вроде все должно работать, но вдруг...
В какой кодировке батник?
Кодировки я менял - не помогло.
винтукей оставляет некоторую настороженность
Это точно, софтина для этих целей, написанная на Дельфи, вообще не хочет в ней запускаться.
Вот и решил попробывать хоть батником как то выкрутиться.
FOR %%I IN ("C:\ЋвзҐвл\???? ??????? - ??-??-?? ??-??-??.txt") DO FOR /F "tokens=2,4,5" %%J IN ("%%~nI") DO REN "%%I" %%J_%%K_%%L.txt&&MOVE C:\ЋвзҐвл\%%J_%%K_%%L.txt C:\OUT
kiripanda
12-05-2013, 16:27
move может сразу переименовывать
Georgio, Снимаю шляпу :up , все работает.
Можно к этому как то прикрутить логи в формате:
Дата/время->Имя исходного файла->Новое имя файла
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.