закройщик Женат |
29-03-2006 - 12:37 я не програмист, поэтому прошу совета. нужно разрезать файл на ХХХ частей при помощи примитивных batch команд, как это сделать? умею только склеивать, а резать не получается )) |
AngeLR Свободен |
29-03-2006 - 15:33 насколько я знаю, командами "дос" можно только слепить файлы, а разрезать нельзя... выход - специальная утилита. |
закройщик Женат |
29-03-2006 - 16:06 во-во, я тоже сколько справочников по этому делу обсмотрел не нашел, вот мне и стало подозрительно, клеить можно, а резать нет. прикольно конечно... |
Свободен |
29-03-2006 - 16:55 Ага, стандартными нельзя. Но с помощью WSH (Windows Scripting Host), который по умолчанию есть уже во всех виндах, можно резать файлы одним батником. |
закройщик Женат |
29-03-2006 - 21:26
QUOTE (JeyLo @ 29.03.2006 - время: 15:55) | Ага, стандартными нельзя. Но с помощью WSH (Windows Scripting Host), который по умолчанию есть уже во всех виндах, можно резать файлы одним батником. |
с этого места поподробней, пжалста... |
Свободен |
30-03-2006 - 15:11 Обработки ошибок, сообщений и прочего нет. Только пример рабочего кода. :)
split.bat
QUOTE (JeyLo) | @echo off @echo Option Explicit > split.vbs @echo dim FileSystem, SourceFile, SourceStream, DestinationFileName, DestinationFile, DestinationStream, CurrentChunk >> split.vbs @echo set FileSystem = CreateObject("Scripting.FileSystemObject") >> split.vbs @echo set SourceFile = FileSystem.GetFile(WScript.Arguments(0)) >> split.vbs @echo set SourceStream = SourceFile.OpenAsTextStream (1, 0) >> split.vbs @echo CurrentChunk = 1 >> split.vbs @echo do until SourceStream.AtEndOfStream >> split.vbs @echo DestinationFileName = FileSystem.GetFileName(WScript.Arguments(0)) ^& "." ^& CurrentChunk >> split.vbs @echo call FileSystem.CreateTextFile (DestinationFileName, true, false ) >> split.vbs @echo set DestinationFile = FileSystem.GetFile(DestinationFileName) >> split.vbs @echo set DestinationStream = DestinationFile.OpenAsTextStream ( 2, 0 ) >> split.vbs @echo DestinationStream.Write ( SourceStream.Read ( WScript.Arguments(1) ) ) >> split.vbs @echo DestinationStream.Close >> split.vbs @echo CurrentChunk = CurrentChunk + 1 >> split.vbs @echo loop >> split.vbs @echo SourceStream.Close >> split.vbs call wscript split.vbs %1 %2 erase split.vbs @echo on
|
splitter.vbs
QUOTE (JeyLo) | Option Explicit
' Декларируем... dim FileSystem, SourceFile, SourceStream, DestinationFileName, DestinationFile, DestinationStream, CurrentChunk
' Создаем объекты set FileSystem = CreateObject("Scripting.FileSystemObject") set SourceFile = FileSystem.GetFile(WScript.Arguments(0)) set SourceStream = SourceFile.OpenAsTextStream (1, 0) CurrentChunk = 1
' Начинаем разбивку do until SourceStream.AtEndOfStream DestinationFileName = FileSystem.GetFileName(WScript.Arguments(0)) & "." & CurrentChunk call FileSystem.CreateTextFile (DestinationFileName, true, false ) set DestinationFile = FileSystem.GetFile(DestinationFileName) set DestinationStream = DestinationFile.OpenAsTextStream ( 2, 0 )
DestinationStream.Write ( SourceStream.Read ( WScript.Arguments(1) ) ) DestinationStream.Close CurrentChunk = CurrentChunk + 1
loop
' И выходим к чертовой матери SourceStream.Close
|
Первый параметр - файл, второй - размер блока в байтах. split.bat myFile.zip 100000 или splitter.vbs myFile.zip 100000 или wscript splitter.vbs myFile.zip 100000.
Батничек есть не что иное, как обертка для двух последних команд. Для нелюбителей расширений vbs. :)
|
AngeLR Свободен |
30-03-2006 - 15:36 жестко ты придумал - батником временный скрипт писать это ж на сколько на до ненавидеть vbs и тем не менее испытывать потребность в нём. |
Свободен |
30-03-2006 - 15:42
QUOTE (AngeLR @ 30.03.2006 - время: 14:36) | жестко ты придумал - батником временный скрипт писать это ж на сколько на до ненавидеть vbs и тем не менее испытывать потребность в нём. |
Шоб враги не догадались. Да и тема про батники.... :) |
farhad Свободен |
08-04-2006 - 13:40 Здорово, только это практически обычная программа - но с другой стороны: батник и работает, значит все в тему. |
bara-igor Свободен |
15-05-2006 - 08:59
QUOTE (закройщик @ 29.03.2006 - время: 12:37) | я не програмист, поэтому прошу совета. нужно разрезать файл на ХХХ частей при помощи примитивных batch команд, как это сделать? умею только склеивать, а резать не получается )) |
Не уверен, что bat-команды, что - то дадут!(copy, mode, cut и т.д. ) А любой файл можно разрезать любым архиватором, отправив их на дискеты. |
закройщик Женат |
15-05-2006 - 11:32
QUOTE (bara-igor @ 15.05.2006 - время: 08:59) | Не уверен, что bat-команды, что - то дадут!(copy, mode, cut и т.д. ) А любой файл можно разрезать любым архиватором, отправив их на дискеты. |
Когда нет ничего под рукой (система чистая) то BATCH файл - это лучший выбор )) Сколько раз он меня выручал!!! Практически в любой области пригождается. Ношу всегда с собой на флэшке справочник по бат-командам. |
Свободен |
15-10-2006 - 08:08 QUOTE (farhad @ 08.04.2006 - время: 20:40) | Здорово, только это практически обычная программа - но с другой стороны: батник и работает, значит все в тему. |
Тогда вот батник для редактирования файлов в формате MS Word... (редактор.bat) @echo off cls echo echo "Не люблю программы Microsoft!!!" echo winword.exe %1 %2 %3 %4 %5 |