Войти

Показать полную графическую версию : Переименовать и переместить файлы


vider
12-05-2013, 09:27
Уважаемые гуру!

ПО формирует текстовые файлы отчетов, со следующими именами:
АБВГ 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: =_%"

vider
12-05-2013, 12:46
Увы, но ничего не переименовывает и не перемещает :cry:

Foreigner
12-05-2013, 13:12
vider,
Мне сложно судить, что не так. В какой кодировке батник? Да и винтукей оставляет некоторую настороженность, вроде все должно работать, но вдруг...

vider
12-05-2013, 14:05
В какой кодировке батник?
Кодировки я менял - не помогло.
винтукей оставляет некоторую настороженность
Это точно, софтина для этих целей, написанная на Дельфи, вообще не хочет в ней запускаться.
Вот и решил попробывать хоть батником как то выкрутиться.

Georgio
12-05-2013, 14:43
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 может сразу переименовывать

vider
12-05-2013, 16:35
Georgio, Снимаю шляпу :up , все работает.
Можно к этому как то прикрутить логи в формате:
Дата/время->Имя исходного файла->Новое имя файла




© OSzone.net 2001-2012