Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Перемещение/Форматирование/Сортировка/Запись/Удаление (http://forum.oszone.net/showthread.php?t=207445)

Маришка 24-05-2011 00:55 1681440

Перемещение/Форматирование/Сортировка/Запись/Удаление
 
Помогите составить пакетный файл для выполнения следующих действий:
а) перемещение всех файлов с flash-диска в рабочий каталог (номер flash-диска и каталог указываются в качестве параметров командной строки);
б) форматирование flash-диска;
в) сортировка файлов в следующие группы и запись каждой группы файлов в отдельный самораспаковывающийся гаг-архив:
группа 1 включает все файлы с именами, начинающимися на "data" и любым расширением, группа 2 включает все файлы, не вошедшие в группу 1;
г) запись полученных архивов на flash-диск;
д) удаление из рабочего каталога всех созданных в процессе работы данной программы файлов.

Delirium 24-05-2011 01:05 1681445

Маришка, помочь можем, а вот написать за тебя - нет. Приводи пример, показывай где и что не работает, посмотрим. В противном случае помощи не будет.

Маришка 26-05-2011 00:46 1682695

rem %1 - путь к flash-диску (F:\)
rem %2 - путь к рабочему каталогу (С:\windows\)
rem копирование в рабочий каталог
copy %1 %2
rem форматирование flash-диска
format %1
rem сортировка файлов для архивации в 1-ую группу
copy %1~data*.* %1~1
del %1~data*.*
rem сортировка файлов для архивации во 2-ую группу
copy %1~*.* %1~2
del %1~*.*
rem переход в директорию с архиватором
cd %1~Arj
rem архивирование 1-ой и 2-ой группы
arj a %1~1.arj %1~1
arj a %1~2.arj %1~2
rem перемещение архивов на flash-диск
copy %1~1.arj %1
copy %1~2.arj %1
rem удаление рабочих каталогов
rd %1~1
rd %1~2
rem выход
exit

проблема в синтаксисе который я не знаю(посмотрите ошибки пожалуйста

amel27 26-05-2011 07:10 1682745

Маришка, непонятки с выбором архиватора - в 1-м посте заявлен RAR, а в примере ARJ. Вот вариант с ARJ32. Путь к архиватору должен быть прописан в переменной PATH, либо нужно в командной строке указать полный путь к ARJ32.EXE.
читать дальше »
Код:

:: %1 - путь к flash-диску (F:)
:: %2 - путь к рабочему каталогу (С:\FLASH_TEMP)

:: подавление вывода команд на экран
@echo off
:: проверка переданных параметров
if "%~2"=="" (
  echo Не заданы параметры скрипта. Процесс прерван.[/color]
  pause>Nul
  exit
)
:: проверка наличия рабочего каталога
if not exist "%~2" (set "YN=Y"
) else set/p YN="Обнаружен рабочий каталог. Перезаписать? [YN]: "
:: удаление рабочего каталога в зависимости от выбора пользователя
if exist "%~2" if /i "%YN%"=="Y" (RD /S/Q "%~2") else (
  echo Процесс прерван пользователем.
  pause>Nul
  exit
)
:: копирование в рабочий каталог
xcopy /s/r/h/y "%~1\*" "%~2\"
if errorlevel 1 (
  echo Ошибка копирования. Процесс прерван.
  pause>Nul
  exit
)
:: форматирование flash-диска
Echo Y|format "%~1" /Q /FS:FAT32 /V:BAT
if errorlevel 1 (
  echo Ошибка форматирования "%~1". Процесс прерван.
  pause>Nul
  exit
)
:: переход в рабочий каталог
pushd "%~2"
if errorlevel 1 (
  echo Ошибка перехода в рабочий каталог "%~2". Процесс прерван.
  pause>Nul
  exit
)
:: архивация в 1-й группы
arj32 m "group1.arj" "data*" -r -p1
if errorlevel 1 (
  echo Ошибка архивации файлов 1-й группы. Процесс прерван.
  pause>Nul
  exit
)
:: архивация в 2-й группы
arj32 m "group2.arj" "*" -r -p1 -xGroup1.arj
if errorlevel 1 (
  echo Ошибка архивации файлов 2-й группы. Процесс прерван.
  pause>Nul
  exit
)
:: перемещение архивов на flash-диск
move /-y group?.arj "%~1"
if errorlevel 1 (
  echo Ошибка перемещения архивов. Процесс прерван.
  pause>Nul
  exit
)
:: возвращение в каталог с батником
popd
:: удаление рабочего каталога
rd /s/q "%~2"
:: выход
exit


Маришка 27-05-2011 05:20 1683430

pause>Nul

что такое Nul?

Iska 27-05-2011 06:56 1683442

NUL: — т.н. пустое устройство; одно из зарезервированных имён устройств в CP/M, DOS, Windows системах. Общее назначение и принципы функционирования в целом подобны Unix /dev/null.

amel27 27-05-2011 12:25 1683604

Цитата:

Цитата Маришка
что такое Nul? »

подавление вывода сообщений любой команды (перенаправление в "никуда")
сравните результат PAUSE с ">NUL" и без него


Время: 11:04.

Время: 11:04.
© OSzone.net 2001-