Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1770 / 752 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
1

Вывод размера файла с разделителями групп разрядов

21.05.2013, 20:23. Просмотров 1825. Ответов 8
Метки нет (Все метки)

Что-то не получается. Необходимо значение %%~za типа 12345678 привести к типу 12 345 678
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2013, 20:23
Ответы с готовыми решениями:

Присвоение переменной формат с разделителями групп разрядов
Здравствуйте, уважаемые программисты! Учил я, было, Visual Basic еще в 2010 (ну как в универе учат...

Вывод в DataGridView из файла с разделителями
string str; string str1 = File.ReadAllText(@"polz.txt").Split('\n'); int...

Разделитель групп разрядов для числа
Добрый день, господа. Впал в ступор. У меня вычисляются некоторые суммы (тысячи ,сотни тысяч,...

Вывод групп чисел из файла PDB в матрицу
есть файл с форматом .pdb (кто не знаком Protein Data Bank), у меня есть парсер на питоне для таких...

8
Pure Free Digital Ghost
4203 / 1665 / 321
Регистрация: 06.01.2013
Сообщений: 4,284
21.05.2013, 21:40 2
Цитата Сообщение от sov44 Посмотреть сообщение
Что-то не получается. Необходимо значение %%~za типа 12345678 привести к типу 12 345 678
Bash
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
set without=1234567625351531
for /L %%A IN (0,1,10000) DO (set len=%%A&if "!without:~%%A,1!"=="" (goto :e1))
:e1
set /a last=!len! %% 3
if !last!==0 (set last=3)
set with=!without:~0,%last%!
for /L %%A IN (!last!,3,!len!) DO (set with=!with! !without:~%%A,3!)
echo.%with%
pause>nul
exit /b
Попробуй
2
1770 / 752 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
21.05.2013, 22:04  [ТС] 3
FraidZZ, благодарю! Думал, код будет проще. Я баловался с !rr:~0,-3!
0
Эксперт WindowsАвтор FAQ
17564 / 7408 / 881
Регистрация: 25.12.2011
Сообщений: 11,197
Записей в блоге: 16
21.05.2013, 23:39 4
Лучший ответ Сообщение было отмечено как решение

Решение

Помнится как-то была здесь уважаемая -Naka,
и написала одно важное замечание, что циклы в какой-то мере - это зло. Почему не писать проще и использовать метки.
Вдоволь поразмыслив и пересмотрев некоторые алгоритмы я согласился, т.к. понял, что множество написанных нами функций работали бы гораздо быстрее через метки.
Может, это и не имеет прямого отношения к данной теме, но
хоть и поздно, мне хотелось бы на этом заострить внимание всех основных кодеров этого раздела.
Если возможность есть, почему бы ее не использовать в целях преимущества, не обращая внимания, что это плохой тон в языках высокого уровня.

Итак, по методу sov44:

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
setlocal enableextensions
set num=12345678
 
:begin
  set ret=%num:~-3% %ret%
  set num=%num:~0,-3%
  if "%num%" neq "" (goto begin) else (set ret=%ret:~0,-1%)
echo -%ret%-
 
pause
3
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 3
09.12.2015, 18:37 5
А можно ли сделать так, чтобы три последних символа не писались и тогда вместо байт считать в килобайтах?
0
639 / 268 / 101
Регистрация: 17.03.2014
Сообщений: 642
09.12.2015, 19:51 6
s3r10rus, тогда перед числом следует вывести символ ~, либо слово "приблизительно"
т.к. 1 килобайт = 1024 байта
0
volodin661
09.12.2015, 22:18
  #7

Не по теме:

и всё ж таки, когда вы начнете пользоваться приличными инструментами?

Код
REVERSE СТРОКИ;;ВСТАВЛЯЕМ ПРОБЕЛ ПОСЛЕ КАЖДОЙ 3-ей ЦИФРЫ;;REVERSE СТРОКИ
Код
echo 12345 вышел зайчик  23243437666 погулять | perl -pe "$_=reverse;;s/\d{3}\K/ /g;;$_=reverse"

0
Эксперт Python
4154 / 3049 / 1005
Регистрация: 28.10.2013
Сообщений: 7,920
09.12.2015, 23:25 8
Цитата Сообщение от sov44 Посмотреть сообщение
Необходимо значение %%~za типа 12345678 привести к типу 12 345 678
Windows Batch file
1
powershell -nop -exec bypass "'{0:#,#}' -f 1234567890"
0
3438 / 1976 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
13.12.2015, 17:55 9
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от sov44 Посмотреть сообщение
Необходимо значение %%~za типа 12345678 привести к типу 12 345 678
.




Проще использовать не "%%~za", а обработку вывода команды "DIR", в котором уже заложено такое форматирование размера файла:


Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "file=C:\Test\test.txt"
 
for /f "tokens=3" %%



		




	
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2015, 17:55

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

Вывод размера файла
Как в этом случае размер файла вывести в лабел? В ShowMessage выводит нормально. var FS:...

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

Вывод размера файла с плавающей точкой
Как вывести размер файла с плавающей точкой в Label? Я определяю размер файла FileInfo FileLength...

Вывод данных и ячейки бд с разделителями
Привет. Подскажите, пожалуйста, решение: В бд есть строка и водной из ячеек есть содержимое в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.