Страница 2 из 15
Добавлено: Ср май 02, 2007 13:55
funduk
Volniy писал(а):Нужно перенести "%L" в поле "Параметры", а то в поле "Команда" эта переменная не расширяется в имя файла-списка.
№;%&!!! Почему все юзеры такие юзерастые юзеры?

Добавлено: Ср май 02, 2007 15:31
Volniy
funduk писал(а):№;%&!!! Почему все юзеры такие юзерастые юзеры?

Наверное, я бы попытался ответить на этот риторический вопрос, но только в том случае, если бы сумел разгадать его глубинный смысл...

Добавлено: Чт май 03, 2007 14:26
CaptainFlint
Переношу в "Автоматизацию".
funduk и Volniy - не флеймить!
Добавлено: Чт май 10, 2007 18:33
Batya
funduk писал(а):Кавычки на %L поставить.
А вот это не обязательно.
Добавлено: Вс май 27, 2007 18:50
banIDit
Задача решается также и с помощью пакетных файлов.
Причем кода будет куда меньше.

Буквально 4-5 строк.
Сейчас сижу на маке, потому только позже могу выложить свой вариант решения сабжа.
Если конечно кому-то еще любопытно.
Добавлено: Вт май 29, 2007 12:59
iov
Любопытно выкладывай
Добавлено: Пт июн 01, 2007 07:34
banIDit
Кое-как добрался до Сети... Вот собственно. В параметрах скрипта поставить %p %t.
Код: Выделить всё
rem Скрипт создает в целевом (%t) каталоге для каждого файла
rem папку и копирует туда его
@echo off
for %%i in (%1*.*) do (
md %2%%~ni
copy %%i %2%%~ni)
Вариант для
выделенных файлов, в параметрах выставить %l %t
Код: Выделить всё
rem Скрипт создает в целевом (%t) каталоге для каждого выделенного файла
rem папку и копирует туда его
@echo off
for /F "eol=" %%i in (%1) do (
md %2%%~ni
copy %%i %2%%~ni)
Скрипты простейшие, нет обработки ошибок.

по такому же принципу в папки можно закидывать архивы файлов, достаточно заменить команду copy на соответствующую из набора rar.exe
Добавлено: Пт июн 01, 2007 11:19
BeTeP
banIDit, спасибо за скрипты, все работает. Но есть один нюанс.
Проверял я только на 2 скрипте, который для выделенных файлов. Если имя файла длинное или в нём есть пробелы, то имя создающейся папки получается неверное.
Например:
Файл Привет привет.txt -> Папка 4709~1
Файл R a m.txt -> Папка RAM~1
Файл ReadmeRUS.txt -> Папка README~1
Добавлено: Сб июн 02, 2007 17:14
banIDit
Согласен, с длинными именами все не так просто оказывается.
Вот что наковырял по этому вопросу, зацените:
Для копирования
всех файлов в свою папку. Параметры — %P %t.
Код: Выделить всё
rem Скрипт создает в целевом (%t) каталоге для каждого файла
rem папку и копирует туда его
for %%i in (%1*.*) do (
md "%2%%~ni"
copy "%%i" "%2%%~ni")
Для копирования
всех выделенных файлов в свою папку. Параметры — %l %t.
Код: Выделить всё
@echo off
rem Скрипт создает в целевом (%t) каталоге для каждого выделенного файла
rem папку и копирует туда его
rem Так как дос не читает из файла-списка (%1) юникодные имена, создаем папку-темп (%2battemp)
rem и копируем туда с короткими именами все выделенные файлы
md "%2battemp"
for /F "eol=" %%i in (%1) do (
copy %%i "%2battemp")
rem Теперь из папки-темп берем имена всех файлов, создаем для каждого каталог
rem и перемещаем туда его, удаляем папку-темп
for %%i in ("%2battemp"\*.*) do (
md "%2%%~ni"
move "%%i" "%2%%~ni")
rd "%2battemp"
Для того, чтобы досовское окно постоянно не мелькало перед глазами, можно отметить галку "в свернутом виде".

Добавлено: Вт фев 05, 2008 17:36
sergeylost
Batya писал(а):Нечто подобное я уже
делал. Теперь немного проще:
Замечательная штучка. ))) Сегодня воспользовался. Спасибо.
Но применительно к моей работе можно ли немного изменить этот скрипт?
Задача такая:
обрабатывать 8 первых символов у файла (пробелов в названиях файлов нет), и по этим символам
назначать либо
находить папку, перемещая туда файл. Если следующий файл в названии будет иметь такие же одинаковые 8 символов вначале, просто перемещать в найденную-назначенную папку.
Пример:
[mod="CaptainFlint"]Оверквотинг удалён.[/mod]
Добавлено: Вт фев 05, 2008 19:37
Batya
sergeylost
Просьба - поменьше бесполезного цитирования.
По поводу задачи - почему нельзя выделить все файлы слева и выполнить скрипт из ветки
http://forum.wincmd.ru/viewtopic.php?t=11448. Переместятся все файлы, для которых найдена соотвестствующая папка. Для которых - не найдена, останутся на месте.
Я просто не понял, что значит
sergeylost писал(а):Если следующий файл
Добавлено: Ср фев 06, 2008 00:49
sergeylost
Имеем: в лев.панели файлы у которых первые 8 символов могут совпадать. Пример: A-123-1a-2567 и A-123-1a-07896874.
Девятый символ и дальше все разные. Применить скрипт по твоей ссылке нельзя. Справа каталогов еще нет. Укладывать некуда. Применить верхний скрипт тоже нельзя, получим массу лишних и ненужных каталогов. Надо совместить два скрипта как то.
Надо:
-выделяем слева файлы
-кликаем по кнопке
-тотал образовывает справа согластно 8 первых символов файлов каталоги
-перемещает туда одноименные файлы (имеющие 8 первых символов имени равной имени каталога)
Результат:
-файлы имеющие в имени первые 8 символов одинаковые, перемещаются в одноименный созданный для них справа каталог
Добавлено: Ср фев 06, 2008 12:44
sergeylost
Господа, насколько реально создать такой скрипт? (описание выше)
Добавлено: Чт фев 07, 2008 10:34
Batya
sergeylost
Ну так бы сразу и сказал, что тебе нужно
создавать папки.
Замени в указанном скрипте
Код: Выделить всё
If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & FileName
Else
NewFilePath = FilePath & "\" & FileName
End If
на
Код: Выделить всё
If WScript.Arguments.Count > 1 Then
NewFilePath = WScript.Arguments(1) & Left(FileName, 8)
Else
NewFilePath = FilePath & "\" & Left(FileName, 8)
End If
Добавлено: Чт фев 07, 2008 12:59
sergeylost
Батя, извини не знаю как тебя зовут, но тебе не только от меня крепкое мужское рукопожатие, но и от нашего сисадмина.. Ты нас от такого головняка избавил!!! СПАСИБО.