Показать полную графическую версию : [решено] Реорганизация папок. Торрент не видит. Нужен скриптик.
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.