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

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

Автор: KapralBel
Дата сообщения: 27.12.2006 10:50
JohnRD

Цитата:
можно ли завести системную переменную %username% в пакетный файл

не понял задачи
Автор: uZver
Дата сообщения: 27.12.2006 11:04

Цитата:
можно ли завести системную переменную %username% в пакетный файл


можно


Код: set login=%username%
@echo %login%
Автор: Sceval
Дата сообщения: 27.12.2006 13:39
Насчет проверки подсобите - батник который бы проверял если такая прога (С:\Prog), если ее нет то переписывал бы с сервера
Автор: KapralBel
Дата сообщения: 27.12.2006 13:50
Sceval

Код: @Echo Off
If Exist C:\Prog\Prog.exe GoTo :EOF
MD C:\Prog
Copy \\Server\Prog\*.* C:\Prog
Автор: Sceval
Дата сообщения: 27.12.2006 13:53
KapralBel спасиба


Добавлено:
@Echo Off
If Exist C:\Program Files\Pandion\Pandion.exe GoTo :EOF
MD C:\Program Files\Pandion
Copy \\all\Pandion\*.* C:\Program Files\Pandion
C:\Program Files\Pandion\Pandion.exe %1



Цитата:

H:\>c:\pandeon.bat
The system cannot find the path specified.
A subdirectory or file C:\Program already exists.
Error occurred while processing: C:\Program.
The network path was not found.
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.



ругаеться, а как сократить имена ~ использую
Автор: uZver
Дата сообщения: 27.12.2006 15:41

Цитата:
C:\Program Files\Pandion\Pandion.exe

C:\PROGRA~1\pandion\pandion.exe

ну или заключить путь в ""
Автор: Sceval
Дата сообщения: 27.12.2006 15:46
Все уже понял,точно забыл кавычки поставить

а как сделать что бы переписалось бы полностью все, а то при
\\all\Pandion\*.* переписались только файлы, а там есть еще папки
Автор: Kirillhome
Дата сообщения: 27.12.2006 16:00
Sceval

Код:
@Echo Off
if "%1" == "" GOTO :ERR
If Exist "C:\Program Files\Pandion\Pandion.exe" GoTo :EOF
XCopy /E /Q /S /I /H /R /Y \\all\Pandion\*.* "C:\Program Files\Pandion"
If Exist "C:\Program Files\Pandion\Pandion.exe" GoTo :RPOD
echo Копирование завершено неудачно!!!
GOTO :EOF
:PROD
"C:\Program Files\Pandion\Pandion.exe" %1
GOTO :EOF
:ERR
echo Не передан параметр в программу!!!
Автор: xcherep
Дата сообщения: 27.12.2006 16:11
king_stiven
сенкс, у меня почемуто неработало а твой вариант работает
Автор: Sceval
Дата сообщения: 27.12.2006 16:56
Kirillhome спасиба попробую
Автор: JohnRD
Дата сообщения: 27.12.2006 18:22
что я делаю неправильно?
где посмотреть примеры, подскажите пожалуйста..

Код: set login=%username%
for /f "usebackq tokens=1,2 delims=;" %%a in (2.csv) do if %%a==login set key=%%b echo %key%
Автор: Elroir
Дата сообщения: 27.12.2006 18:32
JohnRD

Цитата:
что я делаю неправильно?

%%a==login замени на %%a==%login%
Автор: JohnRD
Дата сообщения: 27.12.2006 18:46

Код: Elroir
Автор: ViSiToR
Дата сообщения: 27.12.2006 19:46
JohnRD

Цитата:
set login=%username%

А для чего делать set login? ведь это уже и так является переменной.


Код: for /f "usebackq tokens=1,2 delims=;" %%a in (2.csv) do if %%a==%username% set key=%%b
echo %key%
Автор: JohnRD
Дата сообщения: 28.12.2006 10:18
ViSiToR
действительно, Вы правы, ведь %SystemRoot% легко используется, в любом случае спасибо.

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


Код: for /f "usebackq tokens=1,2 delims=;" %%a in (2.csv) do (
if %%a==%username% goto next
if (%%a==%username%) not exist goto end
)
:next
set key=%%b
echo %key%
:end
Автор: Kirillhome
Дата сообщения: 28.12.2006 11:41
JohnRD

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


Я бы сделал примерно так:

Код:
SET FLAG=0
for /f "usebackq tokens=1,2 delims=;" %%a in (2.csv) do (
if %%a==%username% (SET FLAG=1)
)
IF FLAG == 1 GOTO :NEXT
GOTO :EOF
:next
set key=%%b
echo %key%
:end
Автор: Elroir
Дата сообщения: 28.12.2006 15:03
Kirillhome

Цитата:
Я бы сделал примерно так:

Ты, видимо, торопился
В коде ошибки.

JohnRD
А я бы сделал так :

Код:
set key=
for /f "usebackq tokens=1,2 delims=;" %%a in (2.csv) do if %%a==%username% set key=%%b
if not defined key goto :EOF
echo %key%
Автор: vovikgr
Дата сообщения: 28.12.2006 15:29
задача следующая, запускается бат файл, смотрит сколько места на дисках осталось, если предположим меньше 500 мб то пишет на мыло, "места на диске g: меньше 500 мб"
даже не знаю как подступится к задачке
Автор: JohnRD
Дата сообщения: 28.12.2006 15:49
Elroir

у меня нет слов..
спасибо и с Наступаюшим Вас и всех участников топика.

если я не сильно Вас всех уморил, разрешите еще задавать вопросы

ps матчасть читаю но дается не так быстро

Автор: KapralBel
Дата сообщения: 28.12.2006 16:01
vovikgr
А отдельная утилита не подойдет?
Disk space checker
Автор: JohnRD
Дата сообщения: 28.12.2006 19:45
подскажите пожалуйста
можно ли и как отключить чуствительность к регистру, поскольку если
%username% при логине вбит с большой буквы Sidorov_AB а в файле он представлен
с маленькой sidorov_ab то условие %%a==%username% не выполняется.

спасибо
Автор: igor_andreev
Дата сообщения: 28.12.2006 23:31
JohnRD
IF /?
Автор: vovikgr
Дата сообщения: 29.12.2006 11:57

Цитата:
А отдельная утилита не подойдет?
Disk space checker

спасибо попробую, хотя стремно неизвестный софт на сервак вешать...
Автор: Elroir
Дата сообщения: 29.12.2006 13:21
vovikgr

Цитата:
хотя стремно неизвестный софт на сервак вешать...

В любом случае придется пользоваться сторонней утилитой для отправки почты - встроенными средствами никак. А свободное место можно проверить командой dir.
Автор: KapralBel
Дата сообщения: 29.12.2006 14:26
vovikgr
1,5 года - полет нормальный

Elroir
Сама отправляет отчеты на е-майл
Автор: Elroir
Дата сообщения: 29.12.2006 14:33
KapralBel

Цитата:
Сама отправляет отчеты на е-майл

Я понял . Я имел ввиду, что встроенными средствами Windows невозможно отправить почту из командной строки.
Автор: KapralBel
Дата сообщения: 29.12.2006 15:32
Elroir
Ну вообще встроенные средства (в т.ч и возможности батничков) весьма ограничены
Перешел на альтернативный шелл от Майкрософт - PowerShell
Автор: 01MDM
Дата сообщения: 29.12.2006 16:26
Всех с наступающим Новым Годом!!

Никак не получается настроить заголовок окна 4NT, чтоб отображался полный путь до каталога, в котором сейчас находишься. Решил оставить минимальный промпт (из '#'), а в запускном файле прописать путь в титл. Путь-то прописывается, но в дальнейшем не меняется.

Делал: echo | title %CD%

Как сделать, чтоб команда title постоянно считывала системную переменную %CD% или может сам title определить, как переменную?
Автор: Sceval
Дата сообщения: 29.12.2006 17:19
есть такой батник

Цитата:

If Exist "C:\Program Files\Pandion\Pandion.exe" goto ROD
goto next
ROD
start "C:\Program Files\Pandion\Pandion.exe" %1
goto sc
:next
mkdir "C:\Program Files\Pandion\
%SystemRoot%\system32\xcopy /Q /Y /R /E \\com\Pandion\*.* C:\Program Files\Pandion
start "C:\Program Files\Pandion\Pandion.exe" %1


не хочет копиравать выдает
Invalid number of parameters
0 File(s) copied


Автор: Elroir
Дата сообщения: 29.12.2006 17:26
Sceval

Цитата:
не хочет копиравать выдает Invalid number of parameters 0 File(s) copied

Попробуй так:

Код: %SystemRoot%\system32\xcopy /Q /Y /R /E \\com\Pandion\*.* "C:\Program Files\Pandion"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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