Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Счётчик.

Ответить
Настройки темы
CMD/BAT - Счётчик.

Пользователь


Сообщения: 105
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: serg515
Дата: 27-12-2020
Как написать числа от 1 до 1000000.
Средствами .bat
Можно и .vbs

Отправлено: 17:40, 27-12-2020

 

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Зачем?

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 27-12-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


serg515, что вы хотите получить, в каком виде?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:31, 27-12-2020 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата serg515:
Как написать цифры от 1 до 1000000. »
Нет таких цифр. Есть числа.

Напишите непосредственно в командной строке:
Код: Выделить весь код
for /l %i in (1, 1, 1000000) do @echo %i
Если нужен вывод не на консоль, а в файл:
Код: Выделить весь код
>"Out.txt" (for /l %i in (1, 1, 1000000) do @echo %i)
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:03, 27-12-2020 | #4


Пользователь


Сообщения: 105
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Если нужен вывод не на консоль, а в файл:
Код:
>"Out.txt" (for /l %i in (1, 1, 1000000) do @echo %i) »
работает. только вместо %i,нужно %%i
или
Код: Выделить весь код
for /l %%x in (1, 1, 1000000) do echo %%x>>C:\Out.txt
так же:
Код: Выделить весь код
@echo off
set a=1
:start
>>Out.txt echo %a%
if "%a%"=="1000000" (exit)
echo %a%
set /a a=%a%+1
goto start

Последний раз редактировалось serg515, 27-12-2020 в 21:25.


Отправлено: 20:40, 27-12-2020 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата serg515:
только вместо %i,нужно %%i »
serg515, я написал русским языком и даже выделил — «в командной строке».

Цитата serg515:
или »
Заморитесь ждать. Пример выше один раз открывает файл и пишет в него «до упора», потом закрывает. Ваш пример — делает миллион приседаний раз последовательность действий «открыть файл, дописать в него строку, закрыть файл». Даже с учётом кэширований, это много больше по времени.

Вот на 20000 у меня:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

echo %time%
>"Out1.txt" (for /l %%i in (1, 1, 20000) do echo %%i)
echo %time%
for /l %%i in (1, 1, 20000) do echo %%i>"Out2.txt"
echo %time%

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
22:31:42.32
22:31:43.38
22:31:50.62


Цитата serg515:
так же: »
Нет, так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set /a iCount = 0
2>nul del /f /q "Out.txt"

:Repeat
	set /a iCount += 1
	>>"Out.txt" echo %iCount%
	if %iCount% lss 1000000 goto :Repeat
)

endlocal
exit /b 0
Опять же, этот построчный вывод много медленнее «пакетного».
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:32, 27-12-2020 | #6


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


vbs
Код: Выделить весь код
Filename = "Z:\Box_Out\aaa.txt"

With CreateObject("Scripting.FileSystemObject")
    Set fOut = .CreateTextFile(Filename, True)
    fOut.Close
                
    Set fOut = .OpenTextFile(Filename, 8, False)

    For j = 1 To 999901 Step 100
        fOut.Write iii(j, j + 99)
    Next
    
    fOut.Close
End With

Function iii(i1, i2)
    If i1 = 1 Then
        ii = CStr(i1)
    Else
        ii = vbCrLf + CStr(i1)
    End If
    
    For i = i1 + 1 To i2
        ii = ii + vbCrLf + CStr(i)
    Next
    iii = ii
End Function

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 28-12-2020 в 10:41. Причина: Оптимизация пределов цикла по скорости выполнения. Результат: снижение времени выполнения ~20 раз

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:00, 28-12-2020 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


megaloman, а зачем такие сложности? Операции над строками одни из самых медленных. Ваш скрипт выполняется у меня за 26 секунд. Тупой перебор 1...1000000 с выводом выполняется у меня за 7 секунд.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:20, 28-12-2020 | #8


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Iska, посчитал, что так будет быстрее, видимо ошибся, высплюсь, проверю.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 00:40, 28-12-2020 | #9


(*.*)


Сообщения: 36561
Благодарности: 6694

Профиль | Сайт | Отправить PM | Цитировать


PowerShell range
Код: Выделить весь код
1..100500 >> "$env:userprofile\100500.txt"

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:04, 28-12-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Счётчик.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Счётчик файлов ul9 Скриптовые языки администрирования Windows 1 16-07-2014 16:53
Счётчик производительности *Processor* -MAXX- Автоматическая установка Windows 2000/XP/2003 9 03-10-2006 15:59
Счётчик на ярлычок MrGreeN Microsoft Windows 95/98/Me (архив) 3 15-10-2003 17:16
Счётчик - как сделать? diter Вебмастеру 5 03-10-2003 17:05
Счётчик посещений Evita Вебмастеру 13 27-08-2002 13:59




 
Переход