Как автоматически рассортировать файлы по папкам на основе их имен?
Зря ты так сразу от него отказываешься. По-моему, bash/perl/что-то подобное - самый прямой, быстрый и гибкий способ сделать это.
code:for i in *.jpg; do dn=`echo $i | sed 's/-[0-9]*.jpg//'`; if [ ! -e $dn ]; then mkdir $dn; fi; mv $i $dn; done
сделаю и на перле, приходилось уже. Но это только если совсем невмоготу будет). Может, есть все-таки путь для ламеров
Можно выполнить через cygwin данный скрипт )
И ч0?
пробелы в именах файлов вызывают проблемы в твоем скрипте
code:Dim strFolderPath, FSO Set fso = CreateObject("Scripting.FileSystemObject") strFolderPath = Trim(InputBox("Введите полный путь к папке с файлами"& vbNewLine & _ "Путь должен быть типа:"& vbNewLine & _ "C:\Users\\Documents\Pictures", "Путь к папке"
Set Dir = fso.GetFolder(strFolderPath) For Each File In Dir.Files ArrName = Split(File.Name, "-") strFolder = ArrName(0) strName = ArrName(1) Path = File.Path strFullFolderPath = fso.BuildPath(strFolderPath, strFolder) If fso.FolderExists(strFullFolderPath) Then
FSO.MoveFile Path, strFullFolderPath&"\"&strName
Else fso.CreateFolder strFullFolderPath FSO.MoveFile Path, strFullFolderPath&"\"&strName
End If next
wscript.echo "Готово"
wscript.quit (0)
Скопировать вставить в блокнот и сохранить как .vbs
Учесть что в имени файла не должно быть двух "-", то есть имена должны быть
строго blabla-01.jpg и не должно быть bla-bla-01.jpg
Запустить, радоваться
дефисов как раз дохера попробую переписать скрипт в качестве упражнения
Напиши тогда названия файлов поподробнее.
if [ ! -e $dn ]; then mkdir $dn; fi;
mkdir -p $dn
Как сделать такое поудобнее, не прибегая к перлу и прочим радостям жизнилёгкие решения не предлагать
фцытатынах!
кто минус поставил блеять?!
я, за то что одно неправильное решение заменяют другим неправильным.
code:[[ -e $dn ]] || mkdir $dn? Но -p вроде бы норм, почему нет? А вообще я туплю, скажи ответ?
2) и в том и другом случае, если есть файл с названием $dn - куча файлов проебется
ещё придумать или уже хватит?
Но я понял, о чем ты.
просто вводит в заблуждение то, что ты заминусовл именно коммент про многословность, а надо было уж тогда исходный исправить по делу.
echo может не всегда правильно показать, т.к. в процессе работы создаются/перемещаются файлы, поэтому test покажет не то, что на самом деле показал бы.
исправлять исходный мне было лень, но он хотя бы исправляется до безошибочного варианта, а вариант с mkdir -p без ввода обратно условий каких-нибудь (хотя бы через ||) уже не исправить.
Это же не универсальная утилитка на продажу - это скрипт НА ОДИН РАЗ.
-p - это именно замена того, что наваял предыдущий оратор. И не более того. Я не утверждаю, что его варинат правильный/неправильный или моё исправление делает его правельным. Я всего лишь указываю, что такая конструкция заменяется одним ключиком -p.
если бы я загонялся - то не поставил бы минус, а написал бы огромный пост о том, что таких горе писателей надо сжигать на костре.
если его потом пытаются исправить (в любую сторону
Я специально процитировал что я исправил - и это исправление абсолютно верное.
А вот об остальной части задачи я ничего не говорил - не надо мне приписывать свои домыслы.
Иди самосожгись, нытег, мля.
Я специально процитировал что я исправил - и это исправление абсолютно верное.
оно дает аналогичный первоначальному результат, но верность/неверность его от этого не изменяется.
оно дает аналогичный первоначальному результат, но верность/неверность его от этого не изменяется.
О да, КО! Именно так!
Я не ставил своей задачей решить проблему автора - я всего лишь заметил "небольшой тупизм" и исправил его в одном из вариантов.
ну а чего ты тогда ноешь? я сразу так и объяснил.
Я не ставил своей задачей решить проблему автора - я всего лишь заметил "небольшой тупизм" и исправил его в одном из вариантов.
и именно за это и получил свой минус, поскольку исправлением этого "тупизма" сделал так, что для дальнейшего получения правильного варианта твое исправление надо отменять и "тупизм" возвращать.
Оставить комментарий
oldmelnik
Имеется кучка файлов вида blablabla-01.jpg, blablabla-02.jpg, blablabla-03.jpg .Нужно распихать их по папкам с именем blablabla. Ситуация осложняется тем, что длина blablabla может отличаться.
Как сделать такое поудобнее, не прибегая к перлу и прочим радостям жизни
У смотрелки FastStone, похоже, тоже нет такой функциональности. Ctrl+M в тоталкомандере тоже, как мне показалось, здесь не поможет. Что-то ничего в голову не приходит больше. Может, есть у него еще неведомые мне хитрые функции. Или мож какой попродвинутей бывают файлменеджеры.