Войти

Показать полную графическую версию : [решено] Реорганизация папок. Торрент не видит. Нужен скриптик.


iphone1337
30-04-2011, 22:07
Сабж. Настигла такая проблема http://forum.oszone.net/showthread.php?p=1668190#post1668190
Посоветовали обратиться сюда,буду благодарен за помощь.


Подойдет примерно такой думаю
"Чтобы Искал папки в которых по одному файлу и переносил на категорию вверх. А папку удалял. и се это в одной папке DOWNLOADS"

Foreigner
30-04-2011, 23:09
iphone1337,
Я правильно понял что все торрент-файл раскиданы по одноименным папкам, и теперь их необходимо вернуть в папку Dowloads? Которая служит корневой папкой?

@echo off

pushd "D:\Downloads"

for /f "tokens=*" %%i in (' dir /b /s *.torrent ') do (

move "%%i"
rd /s /q "%%~dpi"

)

popd

iphone1337
30-04-2011, 23:20
Нет,увы,неправильно(.
Есть папка E:\Downloads . Она основная куда торрент клиент все скачивал.
Если в торренте несколько файлов то создавалась папка_Имя_торрента/тут файлы торрента
Если в торренте 1 файл,то он просто скачивался в E:\Downloads
Но после ОБРАботки сторонней тупой программой,в папке E:\Downloads все одиночные файлы фильмов(разные форматы) теперь лежат каждый в отдельной папке(новые создались. )
Мне нужно чтобы Скрипт,проверил каждую папку. И папки,в которых всего 1 файл ->Этот файл переместить в E:\Downloads а саму папку удалить. Надеюсь понятно объяснил. Спасибо





П.с если кому интересно,эта программа около 90гб файлов просто изуродовала/удиалила(хз как,но многие папки теперь вообще пустые и придется перекачивать(( )

kiripanda
01-05-2011, 01:09
Перемещение файлов на уровень вверх (http://forum.wincmd.ru/viewtopic.php?p=47889)

Foreigner
01-05-2011, 08:20
@echo off
setlocal

pushd e:\downloads

for /d %%i in (*) do call:check "%%i"
popd
goto:eof

:check
for /f %%i in (' dir /b %1 ') do set /a cnt+=1
if %cnt% equ 1 move "%~1\*" && rd /s /q %1
set "cnt="

iphone1337
01-05-2011, 11:00
Foreigner, Вот что выдало http://i20.fastpic.ru/big/2011/0501/fe/470df1705d3a9dc51a634ad6fae51ffe.png

Foreigner
01-05-2011, 11:48
Значит есть пустые папки?

@echo off
setlocal

set "cnt=0"
pushd e:\downloads

for /d %%i in (*) do call:check "%%i"
popd
goto:eof

:check
for /f %%i in (' dir /b %1 ') do set /a cnt+=1
if %cnt% equ 1 move "%~1\*" && rd /s /q %1
set "cnt=0"

iphone1337
01-05-2011, 13:42
В основном правильно перемещает,но такую ошибку стал выдавать http://i20.fastpic.ru/big/2011/0501/4c/5adfaab15d0ec6b685dd2f8084c1b94c.png[/QUOTE]
Никак не выходит закончить перемещение. Постоянно эта ошибка.
Подскажите пожалуйста,как исправить?

Foreigner
01-05-2011, 14:12
iphone1337,
Сложно сказать, надо смотреть на чем спотыкается, у меня на тестовой папке все отрабатывает без ошибок.

kiripanda
01-05-2011, 14:44
[telepat mode]
В названии папки/файла спецсимвол
[/telepat mode]

Foreigner
А почему move с одним аргументом? Назначение не нужно указывать?

Foreigner
01-05-2011, 15:20
А почему move с одним аргументом? Назначение не нужно указывать? »
Если назначение текущая папка, то можно и не указывать.




© OSzone.net 2001-2012