Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: KapralBel
Дата сообщения: 11.10.2007 15:49
spidermix
Тогда убери этот ключ

Он отвечает за копирование в режиме АрхивногоКопирования
это когда нет прав доступа к файлам, но есть привилегия АрхивноеКопирование - вот этот режим и используется.... Тут он не обязателен
Автор: spidermix
Дата сообщения: 11.10.2007 16:28
ДЯ сначала не тот робокопи скачал...Счас скачал из Resource kit всё нормально.
Возникает вопрос - можно ли как то регулировать загрузку канала при копировании ???
Или это уже из области фантастики для бат - файла?
Например, как в даунлоад менеджерах есть возможность регулировать скорость скачивания файлов?
Заранее всем спасибо за помощ.
Автор: KapralBel
Дата сообщения: 11.10.2007 16:48
spidermix
/IPG - пойдет ? (не уверен)
Автор: spidermix
Дата сообщения: 11.10.2007 16:57
ERROR : Invalid Parameter #3 : "/IPG"

Usage : ROBOCOPY source destination [file [file]...] [options]

source : Source Directory (drive:\path or \\server\share\path).
destination : Destination Dir (drive:\path or \\server\share\path).
file : File(s) to copy (names/wildcards - default is "*.*").

options : /S : copy Subdirectories, but not empty ones.
/E : copy subdirectories, including Empty ones.

/T : Timestamp all destination files, including skipped files.

/R:n : number of Retries on failed copies - default is 1 million.
/W:n : Wait time between retries - default is 30 seconds.
/REG : Save /R:n and /W:n in the Registry as default settings.

/TBD : wait for sharenames To Be Defined (retry error 67).
/FAT : create destination files using 8.3 FAT file names only.

/X : report all eXtra files, not just those selected.
/V : produce Verbose output, showing skipped files.
/L : List only - don't copy, timestamp or delete any files.

/A+:[R][A][S][H] : add the given Attributes to copied files.
/A-:[R][A][S][H] : remove the given Attributes from copied files.

/XA:[R][A][S][H] : eXclude files with any of the given Attributes
/A : copy only files with the Archive attribute set.
/M : like /A, but remove Archive attribute from source files.

/XF file [file]... : eXclude Files matching given names/paths/wildcards.
/XD dirs [dirs]... : eXclude Directories matching given names/paths.

/XC | /XN | /XO : eXclude Changed | Newer | Older files.
/XX | /XL : eXclude eXtra | Lonely files and dirs.
/IS : Include Same files.

/Z : Copies files in restartable mode.
/NP : No Progress - don't display % copied.
/ETA : show Estimated Time of Arrival of copied files.
/MOVE : Move files and dirs (delete from source after copying).
/PURGE : delete dest files/dirs that no longer exist in source.
-=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=-
Хоть убей не нашёл параметра /IPG - возможно есть другие версии данной софтины?
Автор: KapralBel
Дата сообщения: 11.10.2007 17:07
spidermix
Какая у тебя версия? (дата файла)
у меня

Код:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows :: Version XP010
-------------------------------------------------------------------------------
Автор: spidermix
Дата сообщения: 11.10.2007 17:13
-------------------------------------------------------------------------------
ROBOCOPY v 1.71 : Robust File Copy for Windows NT : by kevina@microsoft.com
-------------------------------------------------------------------------------
Можешь свой выложить.?
Автор: KapralBel
Дата сообщения: 11.10.2007 17:16
spidermix
Если не можешь качать 12М
то кинь в ПМ мне свой емайл, с дома отошлю
Автор: vmix
Дата сообщения: 11.10.2007 18:37
Предлагаю скрипт для удаления пробелов в конце строк батников из форума


Код: :: remove trailing spaces
@echo off
if "%1" =="" echo use dts.bat filename & exit
more %1 | ssed -r s/\x20*$// >tmp
del %1
copy tmp %1>nul
del tmp
Автор: Elroir
Дата сообщения: 11.10.2007 18:46
vmix

Цитата:
может есть что-то по-лучше?

Ага - писать скрипты так, чтобы пробелы в конце строк не влияли на их работу
Автор: KapralBel
Дата сообщения: 11.10.2007 20:14
Elroir
Можно
Но никто этого делать не будет
Автор: Elroir
Дата сообщения: 11.10.2007 20:28
KapralBel
Я стараюсь так делать в последнее время
На самом деле - ничего особенно сложного. Кавычки в нужных местах, скобки, знаки перенаправления вплотную и т.д.
Но, в принципе, ты прав. Если человек по быстрому набросал код - он не будет обращать на такие вещи внимания. Да и не все знают про эту особенность форума.
Автор: KapralBel
Дата сообщения: 11.10.2007 20:34
Elroir
Согласен, когда по быстрому набираешь код для ответа - не до пробелов

А локально - у меня эта проблема решена..
Плагин к ФАРу - и он автоматом обрезает концевые пробелы
Тем более это так привык к этой фиче ФАРа, что сам забываю про проблему концевых
Автор: Tipulatoid
Дата сообщения: 11.10.2007 21:47
KapralBel
А как плагин называется?
Автор: Filosofem
Дата сообщения: 11.10.2007 22:47
подскажите как склеить файлы по маске, или все файлы в папке?
Например есть файлы file.avi.001, file.avi.002... и т.д. штук 100.
или просто как создать строку
"copy /b file.avi.001+file.avi.002+...+file.avi.100 file.avi"
Автор: KapralBel
Дата сообщения: 11.10.2007 23:09
Tipulatoid
См. на плагринге
Автор: Nagual
Дата сообщения: 12.10.2007 02:38
вообще то неплохо бы устранить проблему на корню, т.е. проиноформировать админов форума, неужели так сложно поправить движок на этот предмет?
у кого есть выход на админов, отпишите им
а плагин и сценарий это, конечно, хорошо, но имхо юзать мало кто будет
Автор: Tipulatoid
Дата сообщения: 12.10.2007 03:39
Filosofem
Если я правильно понял, лень набивать эту длинную строку ручками. Тогда так:

Код: @echo off
setlocal enabledelayedexpansion
for /l %%a in (1,1,99) do (
if /i %%a leq 9 set num=00%%a
if /i %%a geq 10 set num=0%%a
set qaz=!qaz!file.avi.!num!+
)

set string=copy /b %qaz%file.avi.100 file.avi
%string%
Автор: Maza Faka
Дата сообщения: 12.10.2007 07:18
Filosofem

Цитата:
есть файлы file.avi.001, file.avi.002

Ну если файлы именно так и нумеруются то вот ещё один вариант:

Код:
@ECHO OFF
SET file=
FOR %%a in (file.avi.*) do call :stick "%%a"
SET file=%file:~0,-1%
COPY /b %file% file.avi
GOTO :EOF

:stick
SET file=%file%%~1+
Автор: GORA2
Дата сообщения: 12.10.2007 11:26
Из-за проблем с передачей в батник пути с пробелами вынужден в батнике собирать его из частей. (не советуйте заключать путь в кавычки, они есть, но программа которая запускает батник их игнорирует)
Делаю это так:
Код: SET "pathTC=%~1"
IF NOT "%~2"=="" SET "pathTC=%pathTC% %~2"
IF NOT "%~3"=="" SET "pathTC=%pathTC% %~3"
IF NOT "%~4"=="" SET "pathTC=%pathTC% %~4"
IF NOT "%~5"=="" SET "pathTC=%pathTC% %~5"
IF NOT "%~6"=="" SET "pathTC=%pathTC% %~6"
IF NOT "%~7"=="" SET "pathTC=%pathTC% %~7"
IF NOT "%~8"=="" SET "pathTC=%pathTC% %~8"
IF NOT "%~9"=="" SET "pathTC=%pathTC% %~9"
Автор: Elroir
Дата сообщения: 12.10.2007 11:47
GORA2

Цитата:
А нельзя ли это как то упростить, сделать изящнее?

Строчек меньше не получится:

Код:
@echo off
setlocal
:concat
if "%~1"=="" goto cont
set "pathTC=%pathTC% %~1"
shift
goto concat
:cont
if defined pathTC (set "pathTC=%pathTC:~1%")
echo %pathTC%
Автор: alexvsm
Дата сообщения: 12.10.2007 11:48
Filosofem

Цитата:
подскажите как склеить файлы по маске, или все файлы в папке?
Например есть файлы file.avi.001, file.avi.002... и т.д. штук 100.

copy /b file.avi.0?? file.avi
или если файлов меньше 10 copy /b file.avi.00? file.avi
Автор: William Gates
Дата сообщения: 12.10.2007 12:58
Есть такая задача. В определенном каталоге лежат бэкапы БД в виде zip-архивов в названии каждого есть дата создания и время. Примерно так:Backup_11.11.06-12.00.zip. Нужен батник, который скопирует из указанной директории файлы в названии которых есть сегодняшняя дата. Оба каталога (тот где бэкапы, и тот куда копировать) должны быть прописаны внутри батника, т.к. он может запускаться откуда угодно. Помогите, пожалуйста, кто может! Заранее спасибо.
Автор: GORA2
Дата сообщения: 12.10.2007 13:02
Elroir
Не понял назначение, а главное синтаксис вот этой строки
Цитата:

Код: if defined pathTC (set "pathTC=%pathTC:~1%" )
Автор: Elroir
Дата сообщения: 12.10.2007 13:11
GORA2

Цитата:
Не понял назначение, а главное синтаксис вот этой строки
if defined pathTC (set "pathTC=%pathTC:~1%" )

Это я перестраховывался:
if defined pathTC - если определена переменная pathTC, то есть, если батнику был передан хотя бы один аргумент командной строки.
set "pathTC=%pathTC:~1%" - отрубаем первый символ (в моем коде - это пробел) от содержимого переменной.
Автор: king_stiven
Дата сообщения: 12.10.2007 14:24
Filosofem
или все файлы в папке?


Код: copy /b *.* file.avi
Автор: Filosofem
Дата сообщения: 12.10.2007 14:37
спасибо за решения, особенно alexvsm
Автор: 01MDM
Дата сообщения: 12.10.2007 14:59
William Gates
Если конечно системный формат даты не отличается от русского (01.01.2001)

Код:
@echo off
for /f "tokens=1-3 delims=." %%i in ('echo %date%') do (
set year=%%k
set cdate=%%i.%%j.%year:~2%
)
for /f %%i in ('dir /b C:\BackUp\*.zip ^| findstr %cdate%') do copy C:\BackUp\%%i C:\Today
Автор: William Gates
Дата сообщения: 12.10.2007 15:32
01MDM
Отлично! С датой все нормально, это все будет работать на одном компе, просто не хочется пускать лишних людей в каталог с бэкапом. Спасибо огромное!

Добавлено:
01MDM
Первый вариант прошел на отлично. Попробовал со вторым - не выходит. Разобрал код насколько сумел - оказалось cdate=12.10.~2. Почему?
Автор: 01MDM
Дата сообщения: 12.10.2007 18:23
William Gates

Если у тебя в файлах названия backup_01.01.07-12.00.zip, то используй вариант выше.
Если название backup_01.01.2007-12.00.zip, то пользуйся:

Код:
@echo off
for /f %%i in ('dir /b C:\BackUp\*.zip ^| findstr %date%') do copy C:\BackUp\%%i C:\Today
Автор: moonkir
Дата сообщения: 14.10.2007 11:04
А реально сделать прогресс бар ?
У меня идет распаковка обновлений...

Код: @ECHO OFF
setlocal enabledelayedexpansion
:Extract
echo.
echo -=Распаковка обновлений=-
echo.
cd msu
For %%F In ("*.msu") Do Call :Ext %%F
goto Exit
:Ext
echo Распаковывается обновление %1 ...
if defined updall goto continue
if exist "..\Cab\%~n1.cab" (
echo Обновление с таким именем уже существует
:Choice
set /p choice=Заменить^(o^),Пропустить^(s^),Заменить Все^(a^)?
echo.
if "!choice:~0,1!"=="o" goto continue
if "!choice:~0,1!"=="a" (set "updall=true" & goto continue)
if "!choice:~0,1!"=="s" goto :EOF
goto :Choice
)
:continue
call ..\tools\servicing\expand -F:* "%1" "..\Cab" > nul
::Удаление лишних файлов
del /f /q "..\Cab\*.xml" > nul
del /f /q "..\Cab\*.txt" > nul
del /f /q "..\Cab\WSUSSCAN.cab" > nul
GoTo :EOF

:Exit
exit

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.