Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Переместить файлы в папки с именем 1го символа
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 15:44    Post subject: Переместить файлы в папки с именем 1го символа Reply with quote

Помогите, пожалуйста, разгрести тучу файлов.
Выделенные файлы раскидать по папкам с именем первого символа каждого файла.
Например:
Имяфайла -> в папку И
другойфайл -> в папку Д (можно без учёта регистра)

Если папки с именем какого-либо символа нет - создать её.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 28, 2011 16:39    Post subject: Reply with quote

Code:
'=============================================================
' Переместить выделенные файлы в создаваемые при необходимости
' папки с именами первых символов имён файлов

' ! Если выбран один файл, то участвуют все файлы источника

' Параметры: %WL "<путь источника>" "<путь получателя>"
' Пример: %WL "%P" "%T"
'=============================================================
With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  L = .Item(0) : P = .Item(1) : T = .Item(2)
End With
If Right(P, 1) <> "\" Then P = P & "\"
If Right(T, 1) <> "\" Then T = T & "\"
Set FSO = CreateObject("Scripting.FilesystemObject")
TF = Split(FSO.GetFile(L).OpenAsTextStream(1, -1).ReadAll, vbNewLine)
If Ubound(TF) = 1 Then
  For Each F in FSO.GetFolder(P).Files : Move F : Next
Else
  For Each F in TF
    If F <> "" Then : If FSO.FileExists(F) Then Move F : End If
  Next
End If
Set FSO = Nothing : WScript.Quit

Sub Move(Fl)
  Trg = T & Left(FSO.GetBaseName(Fl), 1)
  If Not FSO.FolderExists(Trg) Then FSO.CreateFolder Trg
  FSO.MoveFile Fl, Trg & "\"
End Sub


Last edited by Flasher on Thu Dec 01, 2011 11:20; edited 3 times in total
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Nov 28, 2011 16:59    Post subject: Reply with quote

похожая тема
"Переупорядочить папки по первым буквам их имён"
http://forum.wincmd.ru/viewtopic.php?t=12895
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 16:59    Post subject: Reply with quote

Привет Flasher!
Спасибо, сейчас проведу испытания Smile
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 28, 2011 17:06    Post subject: Reply with quote

Tol!k wrote:
похожая тема
... Что-то я искать разучился...

cojoc, привет.
Одно условие дописал.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 17:21    Post subject: Reply with quote

Flasher
У меня выскакивает ошибка в строке 18
invalid procedure call or argument
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 28, 2011 17:32    Post subject: Reply with quote

Переменную не поправил. Сделано.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 17:35    Post subject: Reply with quote

Tol!k
Спасибо за наводку, посмотрел - там вроде бы нет решения для файлов и папок с первым символом.

Добавлено спустя 6 минут:

Flasher
Сработал быстро и без ошибок! Спасибо Flasher!
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon Nov 28, 2011 17:43    Post subject: Reply with quote

А зачем скрипты? Стандартного MRT уже мало?

Ctrl+M, маска имени [N1]\[N] Very Happy

PS. Нужен TC 8.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 28, 2011 17:48    Post subject: Reply with quote

MVV
Получатель может быть разным. И тут в один клик, да и без выделения можно.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 17:50    Post subject: Reply with quote

Flasher
Есть один нюанс срипт не обрабатывает нужным образом файлы с символами:
ßéêŽÀ и так далее...
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon Nov 28, 2011 17:53    Post subject: Reply with quote

cojoc, если у тебя 8-й тотал, пробуй мой вариант через мультипереименователь.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Nov 28, 2011 17:53    Post subject: Reply with quote

cojoc
Вместо %L укажи %UL.
Back to top
View user's profile Send private message
cojoc



Joined: 04 Sep 2009
Posts: 144

Post (Separately) Posted: Mon Nov 28, 2011 17:57    Post subject: Reply with quote

Flasher, MVV ОК

Добавлено спустя 7 минут:

Flasher
что-то не подействовало %UL
MVV
через мультипереименователь получилось
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Dec 01, 2011 11:21    Post subject: Reply with quote

cojoc
Пофиксил скрипт.
Хотя не представляю, зачем держать файлы с диакритическими знаками в их именах (за исключением кириллицы (й, ё), конечно). Это фактически всех скриптов по работе со списками касается...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group