нужен умный BATник

yemets63
Дата: 23.12.2007 20:16:02
есть файлы, к примеру 700, и каждый день примерно по столько приваливает

хочется написать батник, чтобы он брал, анализировал имена файлов в определенной папке, создавал по имени файла папку (отбрасывая в имени папки расширение) и переносил туда файл

мои знания DOS позволяют создать папку и переместить файл, ну я ни фига не помню, как можно проанализироватьь файл, поочередно отработать получить имя файла, отбросить расширение и подставить имя для создания папки и перенос именного того файла которому создалась папка

можно написать прогу например на Delphi, ну хочеться сделать все в батнике, подскажите как?

спасибо
Yanis
Дата: 23.12.2007 20:18:54
Я бы использовал WSH
yemets63
Дата: 23.12.2007 20:29:53
а без скрипт хост ни как? просто ДОСовскими командами я наверное фиг что смогу сделать?
Biz©
Дата: 23.12.2007 22:29:58
мы простых путей не ищем ... ;)
qq.cmd
@echo off
rem
rem процессинг файлов в текущем каталоге
rem
for %%i in (*) do call :111 "%%i"
rem
rem тут вставлять команды _после обработки всех файлов_
rem
goto :EOF

rem
rem обработка каждого файла
rem
:111
set /a num=-1
set filname=%~1

:1_111
set sym=%filname:~-1,1%
if "%sym%" == "~-1,1" goto noext_111
if "%sym%" == "." goto ext_111
set filname=%filname:~0,-1%
goto 1_111

:ext_111
set dirname=%filname:~0,-1%
set filname=%~1
goto end_111

:noext_111
set dirname=%~1
set filname=%~1
goto end_111

:end_111
rem
rem заменить эхо на обработку файлов
rem filname - имя файла
rem dirname - имя каталога
rem
@echo Move %filname% to directory %dirname%
goto :EOF

зы1: в _текущем_ каталоге
зы2: нынче расширение - понятие растяжимое
Biz©
Дата: 23.12.2007 22:32:40
строчку "set /a num=-1" можно выбросить ака мусор ...
Crazy_Driver
Дата: 23.12.2007 23:51:05
Yanis
Я бы использовал WSH

+1
Kirill Razuvaev
Дата: 25.12.2007 12:49:16

>> есть файлы, к примеру 700, и каждый день примерно по столько приваливает
>> хочется написать батник, чтобы он брал, анализировал имена файлов в
>> определенной папке,
>> создавал по имени файла папку (отбрасывая в имени папки расширение) и
>> переносил туда файл

Вопрос по постановке задачи:
Т.е. +700 файлов в день - мало, пусть будет +700 файлов +700 папок на диске?



Posted via ActualForum NNTP Server 1.4

ritaov
Дата: 16.01.2008 07:14:59
Подскажите как получить имя файла без расширения? Просто имя файла.
Ммихалыч
Дата: 16.01.2008 09:23:59
написат скрипт например на вб
Андрей Спильный
Дата: 16.01.2008 11:41:05
1.для начала стоит уяснить, что командный процессор DOS отличается от его аналога в NT
2.затем воспользоваться cmd /?
3.после этого в командной чтроке набрать help

где-то после получаса, вы сами сможете написать примерно вот такое
@FOR /F "tokens=*" %%i IN ('DIR *.* /A-D /L /ON /B') do @echo %%~ni

посмотрите аттач - он облегчит ваш путь ;)