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

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

Автор: Nervniy2000
Дата сообщения: 27.02.2006 14:47
все папки и файлы из C:\Documents and Settings\DadyaVasya\*.* в папку C:\Documents and Settings\Default User\
прОсто батник.... написать не получается, он работает с любой папкой, но не работает ИМЕННО с Documents and Settings, вот и паримся тут в ручную копируем постоянно.
нет никаких идей??
Автор: KapralBel
Дата сообщения: 27.02.2006 15:04
Nervniy2000
Какие именно ошибки дает?
Автор: Nervniy2000
Дата сообщения: 27.02.2006 15:52
говорит, типа системе не удается найти указанный путь....
Автор: KapralBel
Дата сообщения: 27.02.2006 16:01
Nervniy2000
Приведи батник
Автор: Nervniy2000
Дата сообщения: 27.02.2006 22:37
дословно не могу. щас не на работе, там просто команда copy с прописаными путями и все..
вроде все правильно....больше писать вроде не чего.....
Автор: MonsterMax
Дата сообщения: 27.02.2006 22:40
Nervniy2000
а в кавычки поставить " C:\Documents and Settings\DadyaVasya\*.*"



Ну не любит винда пробелов

а почему не @xcopy "%SYSTEMDRIVE%\Documents and Settings\DadyaVasya\*.*" "%SYSTEMDRIVE%\Documents and Settings\Default User\ " /s/y/h/k/q
Автор: Nervniy2000
Дата сообщения: 28.02.2006 10:11
вот про кавычки-то я и не подумал вообще, пасибо, все работает

Добавлено:
а возможно-ли отключать клавиатуру с мышкой батником???
Автор: ivolc
Дата сообщения: 28.02.2006 13:10
nightlight
Спасибо, спасибо, спасибо !!!!!

Автор: 0ne_quaker
Дата сообщения: 28.02.2006 14:25
Пишу скрипт для бэкапа, все уже работает за исключением одного, как сделать чтобы при отсутствии свободного места на винте батник удалял 1-2 старых бэкапа? Все бэкапы называются так: ИМЯ_27022006.bkf
Автор: jak_forest
Дата сообщения: 28.02.2006 15:42
0ne_quaker

Код:
@ECHO OFF

echo %date% %time% RM_DIR %* Called...>> "backup.log"

IF #%2#==## goto syntax
setlocal

:: Get parameter info
set path_to_scan=%1
set path_to_scan="%path_to_scan:"=%"
set count=%2
set j=0

:: Set dir command to use
set dirflag=/o:-d /b /t:c /a:-d
pushd %path_to_scan%
FOR /F "tokens=*" %%i in ('dir %dirflag% %path_to_scan%') do call :checkfile "%%i"

popd
endlocal
goto :EOF

:checkfile
set target=%1
if %j% GEQ %count% del /q %target%
::echo %date% %time% %j% from %count% %target%>> "C:\UIT\Log\backup_dok_doc.log"
set /a j=j+1
:: echo %j%
goto :EOF

:syntax
ECHO оставляет ^<number of files^> "новых" ФАЙЛОВ в
ECHO директории ^<path_to_scan^>, остальные ФАЙЛЫ удаляет.
ECHO.
ECHO Syntax: %~nx0 ^<path_to_scan^> ^<number of files^>
ECHO.
ECHO Example: %~nx0 F:\users 5
ECHO.
goto :EOF
Автор: 0ne_quaker
Дата сообщения: 28.02.2006 16:53
jak_forest
Работает! Спасибо.
Только вот расшифровать бы ещё некоторые строки
Автор: KapralBel
Дата сообщения: 28.02.2006 16:57
0ne_quaker
Какие строки тебе не понятны?
Автор: 0ne_quaker
Дата сообщения: 03.03.2006 10:08
KapralBel
Ну например

Цитата:
IF #%2#==## goto syntax
setlocal

и

Цитата:
if %j% GEQ %count% del /q %target%



Цитата:
ECHO Example: %~nx0 F:\users 5
Автор: KapralBel
Дата сообщения: 03.03.2006 10:42
0ne_quaker

Цитата:
IF #%2#==## goto syntax

Если второй параметр, передаваемый в батник пустой
#%2# - принимает значение ## -если 2-й параметр пустой, если он имеет значение 123 - то #123#


Цитата:
if %j% GEQ %count% del /q %target%

GEQ - Great or EQualence - больше или равно
См If /?


Цитата:
ECHO Example: %~nx0 F:\users 5

%~nx0 - из имени выполняющегося батника выделяется его имя и расширение, без пути
См FOR /?
Автор: jak_forest
Дата сообщения: 03.03.2006 11:20
а вот такой каверзный вопрос:
можно ли в начале cmd/bat файла сказать, что стандартный поток вывода (поток вывода ошибок) не на экран а в файл?
Автор: Alan Mon
Дата сообщения: 03.03.2006 11:33
jak_forest
В начале cmd - вряд ли. Но можно вывод ошибок каждой команды перенаправлять в файл:
команда >> errors.txt 2>&1
Автор: KapralBel
Дата сообщения: 03.03.2006 11:38
jak_forest
2 способа
1. В каждой строке батника сделать перенаправление в файл
2. Вызов батника с перенаправлением в файл Super.Cmd >Log.txt (можно вызвать из другого батника)
Автор: jak_forest
Дата сообщения: 03.03.2006 15:46
KapralBel Alan Mon
про оба способа знаю. Сенкс. Просто хотел сделать вообще по хитрому. ну на нет, как говорится и почину нет.

первый способ вызывает много гемороя, если есть много команд с выводом, а второй не очень красивый, если учесть что это будет вызываться диспетчером заданий
Автор: 0ne_quaker
Дата сообщения: 07.03.2006 10:34
KapralBel
Спасибо, теперь понял что к чему
Скрипт действительно рулит.
Автор: cluster
Дата сообщения: 07.03.2006 16:40
а командные файлы со счётчиком работают? Нужно сделать скрипт типа:

Код: Введите ФИО первого пользователя: Ivanov Mikhail Sergeevich
команда (например, создать каталог с именем первого пользователя)
закончить? НЕТ
Введите ФИО второго пользователя: Demidov Alexey Pavlovich
команда (например, создать каталог с именем второго пользователя)
закончить? НЕТ
Введите ФИО третьего пользователя: Trofimov Sergey Ivanovich
команда (например, создать каталог с именем третьего пользователя)
закончить? ДА
Автор: hacsoft
Дата сообщения: 07.03.2006 17:09
cluster
Можно циклом for
Автор: cluster
Дата сообщения: 07.03.2006 17:35
hacsoft
да вот я уже подумываю об этом.. только я не совсем спец в этом.. Вот моя рабоячая версия без всяких счётчиков и массивов. [more]@echo off

Код: rem CoDeD by klaster

setlocal

:_clrvar
echo.
set _user=
set _r=
set _f=

echo Введите Имя.О.Фамилия пользователя (например "Vikor.Y.Fomin")
echo Или нажмите ENTER для завершения скрипта.
echo.

set /p _user=Введите Имя.О.Фамилия:
    if "%_user%" == "" goto _end
echo.

set /p _r=Начать выполнение? (y/n):
if "%_r%" == "" goto _start
if /I "%_r%" == "y" goto _start
if /I "%_r%" == "n" goto _clrvar
:_start
echo.

rem Любой набор команд.. (просто пример)
xcopy %_user% "C:\" /y /q
del /q %_user%
rem Конец набора команд
echo.

set /p _f=Ещё одного пользователя? (y/n):
if "%_f%" == "" goto _clrvar
if /I "%_f%" == "y" goto _clrvar
if /I "%_f%" == "n" goto _end

:_end

endlocal
Автор: Vitus_Bering
Дата сообщения: 08.03.2006 09:42
Как узнать установлен ли определенный шрифт в системе?
Если не установлен, то как установить?
Автор: igaraev
Дата сообщения: 09.03.2006 05:58
Товарищи подскажите пожалуйста. Какой нибудь хороший Shell под windows вместо родного command.com
Автор: MonsterMax
Дата сообщения: 09.03.2006 09:05
igaraev
вообще то виндовс шелл это explorer.exe и я не поверю что ты не слышал про ASTON.

А вообще вопрос к модерам - вроде не по теме про шеллы
Автор: nightlight
Дата сообщения: 09.03.2006 19:56
igaraev

Цитата:
Какой нибудь хороший Shell под windows вместо родного command.com


Bash Вас устроит?

http://www.steve.org.uk/Software/bash/

Добавлено:
jak_forest

Цитата:
можно ли в начале cmd/bat файла сказать, что стандартный поток вывода (поток вывода ошибок) не на экран а в файл?

Элементарно Ватсон!
Для этого надо в начало файла поместить следующие строки:

@echo off
if exist %temp%\temp.cmd del /q %temp%\temp.cmd
for /f "skip=6 tokens=*" %%i in (%0) do echo %%i >> %temp%\temp.cmd
cmd /c %temp%\temp.cmd > e:\tmp\eto.log
if exist %temp%\temp.cmd del /q %temp%\temp.cmd
exit /b


Добавлено:
Vitus_Bering

Цитата:
Как узнать установлен ли определенный шрифт в системе?
Если не установлен, то как установить?

http://winfaq.com.ru/winnt/45.html
Автор: jak_forest
Дата сообщения: 10.03.2006 07:46
nightlight
хм...
действительно оригинальный способ.
вопросы к размышлению (что бы не флеймить лучше не отвечать).
А если на машине куча заданий.?
А если вызов на выполнение батника происходит быстрее чем он успевает отработать (типа выполнение длится 15 мин, а батник вызывается каждые 10 минут)?

Но все равно, спасибо буду воплощать сказку в жизнь.
Автор: Vitus_Bering
Дата сообщения: 10.03.2006 10:45
nightlight, спасибо.
Как установить - понятно, а как узнать установлен ли определенный шрифт?
Автор: Rost admin
Дата сообщения: 10.03.2006 13:25
Задача состоит в следующем:

Есть структура папок:
c:\1\primer1.txt
c:\1\primer2.tx
c:\2\primer3.tx
c:\3\primer4.tx

На другом диске есть зеркало этой структуры

Нужно написать батник который бы смотрел дату создания файла и если дата более новая чем на зеркале, то копировал его на зеркало
Автор: KapralBel
Дата сообщения: 10.03.2006 13:31
Rost admin
тебе надо исключительно возможностями .bat файлов?
Есть хорошая утилитка Robocopy - которая это делает (и еще много чего)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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