Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: vserd
Дата сообщения: 25.07.2007 10:06
dardreams

Цитата:
Я нечего непонимаю в этом.

Это твоя проблема. Здесь форум, а не курсы по изучению языка программирования.
К коду KapralBel после

Цитата:
if errorlevel 1 (msg * "NO") else (msg * "YES")

добавь
goto :eof
и будет тебе счастье.
Автор: dardreams
Дата сообщения: 25.07.2007 10:11
KapralBel
Спасибо тебе большое.
Автор: KapralBel
Дата сообщения: 25.07.2007 10:13
vserd

Цитата:
добавь
goto :eof
и будет тебе счастье.

Можно, но не обязательно - все равно идет переход на конец файла
Автор: vserd
Дата сообщения: 25.07.2007 10:20
KapralBel

Цитата:
Можно, но не обязательно - все равно идет переход на конец файла

Ты уверен что там осталось за кадром????
Я нет, может там еще четыре страницы кода? Или кто-то другой будет читать форум и посчитает этот код полезным и будет вставлять бездумно в свой проект?

Или ты хочешь увидеть вопрос, а почему это работало до того как, а вот после, уже нет?
Автор: KapralBel
Дата сообщения: 25.07.2007 10:35
vserd
В данном конкретном случае можно и без явного перехода

А если кто наткнется из новичков - то спросит (хотя мой опыт говорит, что сначала спрашивают а потом ищут)
Автор: dardreams
Дата сообщения: 27.07.2007 06:06
Есть ли возможность, сделать глобальную переменную.
Пример:
Если написать set x=time /t
то в %x% будет текущеее время. И это все работает только до закрытия консольного окна. Есть ли возможность сделать это навсегда, такие переменные как %programfiles% или %homepath%.
Автор: Maza Faka
Дата сообщения: 27.07.2007 06:35
dardreams
Есть такая возможность, например: Пуск > Настройка > Панель управления > Система > Дополнительно > Переменные среды > Системные переменные и добавляешь своё значение или редактируешь имеющиеся.
Способ второй:

Код:
@echo off
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v MyEnv /t REG_SZ /d C:\MyPath /f
Автор: dardreams
Дата сообщения: 27.07.2007 06:56
Блин круто. все так просто... спасибо.
Вот еще решил сделать как раньше на паскале делал типа красивое окошко.
Пример:

-----------------------------------------
1 3 1
1 1
-----------------------------------------
Предположим что это рамка.
Реально такую нарисовать , но чтобы курсор мигал там где цифра 3 и когда я писал вся рамка оставлась на месте ?
Автор: KapralBel
Дата сообщения: 27.07.2007 07:10
dardreams
Посмотри Пакет утилит для организации интерфейса в bat-файлах
Автор: dardreams
Дата сообщения: 27.07.2007 07:33
Возможно ли копирование фалов с процентами.
Пример.
xcopy /i /s c:\windows d:\WINXP
будет копировать и показывать каждый файл отдельно. Реально ли сделать прогресс чтобы видеть столько еще ждать ?

И возможно ли точно так же удолять чтобы видеть прогресс потому что
rd c:\windows /s /q просто удаляет нечего не показывая.
Автор: KapralBel
Дата сообщения: 27.07.2007 08:36
dardreams
Средствами батника - можно -
Перебрать все файлы
вычислить их объем
А потом по одному файлу копировать и вычислять переданный объем
Работать будет крайне медленно

Либо писать утилиту на языкахтипа Паскаля,С - либо искать готовую
Автор: dardreams
Дата сообщения: 27.07.2007 08:46
А что насче удоление хотя бы со списком ?

Добавлено:
А есть способ узнать размер файла , папки ?
Автор: KapralBel
Дата сообщения: 27.07.2007 09:09
dardreams

Цитата:
А что насче удоление хотя бы со списком

Аналогично


Цитата:
А есть способ узнать размер файла , папки ?

Да
см. команду FOR /? - там расписано как получить размер
и команду Set /? для суммирования
Автор: dardreams
Дата сообщения: 27.07.2007 09:22
Есть еще такая тема
cmd /t:0a меняет цвет на светлозеленые прямо в окне.
Есть ли что то наподобе чтобы менять размер окна ?

Добавлено:
как сделать чтобы он принимал значение как число. (integer)
set x=13
он думает что это текст.
Автор: vserd
Дата сообщения: 27.07.2007 11:27
dardreams

Цитата:
как сделать чтобы он принимал значение как число. (integer

Он Это кто????
cmd /k help set
cmd /k set /?

set /a y=%x%+%x%


Цитата:
Возможно ли копирование фалов с процентами.

посмотри в http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=10650 там был способ.
Автор: dardreams
Дата сообщения: 27.07.2007 11:30

Цитата:
set /a y=%x%+%x%

А где сказать что оно = 13 ?

Цитата:
Он Это кто????

это я имел виду консоль(ДОС)привычка
Автор: vserd
Дата сообщения: 27.07.2007 11:36
Млят.......................................................ь ..... . ....... ...... ...... ....

Цитата:
А где сказать что оно = 13 ?

А прочитать свой пост не досуг?????
Думай. Пробуй. Здесь не курсы по программированию.
И версию для печати этого и всем смежным топикам, даже архивным никто не отменял.
Автор: KapralBel
Дата сообщения: 27.07.2007 11:37
dardreams

Код: >Set aa_a=13
>Set aa_b=17
>Set /a aa_c=%aa_a%+%aa_b%
>Set aa
aa_a=13
aa_b=17
aa_c=30
Автор: Maza Faka
Дата сообщения: 27.07.2007 12:01
dardreams
Рекомендую прочесть эти книги, многое станет понятным:

Уильям Р. Станек
"Командная строка Windows Справочник администратора"

Андрей Попов
"Командные файлы и сценарии Windows Script Host"

Поищи на Яндексе, в электроном виде, сам скачивал когда-то.

vserd

Цитата:
Млят

Не нужно так нервничать...
Автор: Yuki2003
Дата сообщения: 27.07.2007 12:31

Код: For /f %%a In ( List.txt ) Do ...
Автор: KapralBel
Дата сообщения: 27.07.2007 12:40
Yuki2003

Код: For /f "delims=/" %%a In ( List.txt ) Do Echo %%a
Автор: vserd
Дата сообщения: 27.07.2007 12:42
Yuki2003
переопредели delims
например так For /f "delims=" %%a In ( List.txt ) do echo %%a
Автор: Yuki2003
Дата сообщения: 27.07.2007 12:49
2 проблемы [more=в скрипте...]For /f "eol=; delims=" %%c In ( List.txt ) Do (
Set test=%%c
Set test1=%%c
Set count=0
:again
For /f "delims=\* tokens=1*" %%d In ("!test!") Do (
Set /a count=!count!+1
Set test=%%e
)
If Not "!test!"=="" GoTo again
For /f "delims=\ tokens=%count%" %%f In ("%test1%") Do Set test1=%%f
Echo !test1!
)[/more]
1) В List.txt несколько записей, однако цикл выполняется всего один раз.
2) В конце скрипта вместо In ("%test1%") не могу использовать %%c, она "пустая", приходится test1 создавать

Добавлено:
KapralBel
Спасибо!
vserd
Смысл понял!
Автор: vserd
Дата сообщения: 27.07.2007 12:57
Yuki2003
Сходу.
Скобки!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Скрипт вы полняется до ближайшей закрывающей скобки.

Что ты хочешь сделать?
Автор: Yuki2003
Дата сообщения: 27.07.2007 13:06
vserd
Вложенные циклы нельзя?

Добавлено:

Цитата:
выполняется до ближайшей закрывающей скобки

Вроде нет, Echo, которое после ближайшей закрывающей скобки - "срабатывает"

Добавлено:

Цитата:
Что ты хочешь сделать?

В List.txt список путей. Хочу в цикле (перебор строк) получать 2 переменных - сам путь и имя последнего в этом пути каталога (и делать бэкап). Приведенный пример получает имя последнего каталога.
Автор: vserd
Дата сообщения: 27.07.2007 13:15
На счет скобок, я похоже прогнал, но что-то сними не так, наступал на грабли, и было больно :(

Set test=%%e ?????????????????????????????????????????????????????????
это чего такое
Автор: Yuki2003
Дата сообщения: 27.07.2007 13:21

Цитата:
это чего такое

Присвоение "правого остатка" от %%d в переменную test (вычисление имени самого "правого" каталога в цикле.
Это все как раз работает без проблем.
Автор: KapralBel
Дата сообщения: 27.07.2007 13:46
Yuki2003
Вообще, что ты хочешь сделать
Автор: Yuki2003
Дата сообщения: 27.07.2007 13:54
KapralBel
В List.txt список путей.
Хочу в цикле (перебор строк) получать 2 переменных - сам путь (то есть просто строку целиком) и имя последнего в этом пути каталога и делать бэкап:
1-я переменная - что бэкапить,
2-я - имя архива.
И то и другое - не проблема, работает, но... не в цикле, а всего 1 раз.
Цикл прерывается.
Пример "облегчен", в нем только 2-я переменная "вычисляется".
Автор: vserd
Дата сообщения: 27.07.2007 14:09

Цитата:
это чего такое

Присвоение "правого остатка" от %%d в переменную test

Хм. Мои глаза указывают что это присвоение переменной test значение некоторой переменной %%e но не %%d
А следующим идет проверка на не пустое значение test. Так как условие не выполняется, то %count% = 1

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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