Войти

Показать полную графическую версию : [решено] перемещение папки если не содежит файлы определенного расширения


neprotiv
04-04-2013, 22:03
здраствуйте, нужна ваша помощь в таком деле
качаю по rss в utorrente папки в котороых файлы. если папка скачана не полностью то в ней файлы с расширением *.!ut
мне надо перемещать папки которые полностью скачались (то есть не содержат расширение *.!ut) в другую папку - название которой - это дата создания файлов в папке
например
из D:\incoming\папка которая скачалась в D:\new\2013-04-04\\папка которая скачалась
спасибо

Foreigner
04-04-2013, 23:04
При условии, что папки находятся на одном разделе:


@echo off

pushd "D:\incoming"

for /f "tokens=*" %%i in (' dir /b /ad ') do if not exist "%%i\*.!ut" call:1 "%%i" %%~ti

popd
goto:eof

:1

for /f "tokens=1-3 delims=." %%i in ("%2") do (

2>nul md "D:\new\%%k-%%j-%%i"
move %1 "D:\new\%%k-%%j-%%i"

)

neprotiv
04-04-2013, 23:14
ура!!!
большое спасибо

neprotiv
06-04-2013, 03:03
@echo off

pushd "D:\incoming"

for /f "tokens=*" %%i in (' dir /b /ad ') do if not exist "%%i\*.^!ut" call:1 "%%i" %%~ti

popd
goto:eof

:1

for /f "tokens=1-3 delims=." %%i in ("%2") do (

2>nul md "D:\new\%%k-%%j-%%i"
move %1 "D:\new\%%k-%%j-%%i"

)

заметил баг...по скольку нельзя исользовать символ в ! в батниках то надо ставить знак ^
так работает правильнее
еще раз спасибо

Foreigner
06-04-2013, 06:47
по скольку нельзя исользовать символ в ! в батниках »
Кто вам такое сказал?!!

neprotiv
06-04-2013, 14:51
я имел ввиду поповоду знака ! в именах

не помню когда и где нашел но нашел альтренативу..там это вспоминается
http://www.cyberforum.ru/cmd-bat/thread629573.html

Iska
06-04-2013, 18:23
neprotiv, проблема проявляется только при использовании отложенного расширения переменных окружения и только в определённом коде.

neprotiv
07-04-2013, 16:16
Iska, тогда понятно
поскольку я исользуую файл setting.ini чтобы менять параметры
во многом я пользуюсь методом тыка и сравнением других батников
вот реальный код который я использую...

@echo off
setlocal enabledelayedexpansion
For /F "eol=; tokens=1* delims==" %%i In (settings.ini) Do Set %%i=%%j

pushd "%INCOMING.INT%"

for /f "tokens=*" %%i in (' dir /b /ad ') do if not exist "%%i\*.^!ut" call:1 "%%i" %%~ti

popd
goto:eof

:1

for /f "tokens=1-3 delims=." %%i in ("%2") do (

2>nul md "%INCOMING.OUT%%%k-%%j-%%i"
move %1 "%INCOMING.OUT%%%k-%%j-%%i"

)
ну а в файле настроек так

INCOMING.INT=D:\rss\
INCOMING.OUT=D:\2013\

vova_kansk
06-10-2013, 07:45
в моем мторенте есть галочка "по окончании закачки перемещать файлы в...."




© OSzone.net 2001-2012