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

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

Ответить
Настройки темы
CMD/BAT - [решено] Непонятный глюк в записи из командной строки в текстовый документ.

Новый участник


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


Конфигурация

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


Изменения
Автор: kefirko
Дата: 12-02-2012
Описание: Кривая орфография
Вложения
Тип файла: rar Договоры.rar
(358 байт, 7 просмотров)
Общий смысл такой:
Есть файлик number.ini, в нем только число. Это счетчик номера договора.
При запуске Новый договор.cmd создается папка типа "Номер договора. Клиент изделие".
Так вот беда в том, что если в файлике number.ini будет число от 0 до 8, то потом в него не записывается новое число.
А вот если будет число от 9, то все нормально.
Я ничего понять не могу. Помогите.
Код: Выделить весь код
@echo off
echo.
echo                    ‚ўҐ¤ЁвҐ д*¬Ё«Ёо Є«ЁҐ*в* Ё **§ў**ЁҐ Ё§¤Ґ«Ёп  
echo                    Џ®пб*пойЁ© ЇаЁ¬Ґа: ?ў**®ў вг¬Ў*  
echo.  
set /p client=  
for /f %%i in (%~dp0\number.ini) do set number=%%i  
md "%~dp0\%number%. %client%"  
set /a number=number+1  
echo %number%>"%~dp0\number.ini"
Ну или вдруг у кого есть идеи получше и проще реализовать данную задумку, буду рад выслушать.

Отправлено: 15:54, 12-02-2012

 

Старожил


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

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


Поставьте точку echo.%number%>"%~dp0\number.ini"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:34, 12-02-2012 | #2



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

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


Новый участник


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

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


Цитата kiripanda:
Поставьте точку echo.%number%>"%~dp0\number.ini" »
Ура! А вот теперь можете популярно объяснить в чем была беда?

Отправлено: 16:36, 12-02-2012 | #3


Аватара для root221

Старожил


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

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


Афигеть, с таким я первый раз сталкиваюсь ))) Хотя тоже пробЫвал так

Код: Выделить весь код
echo. %number%>"%~dp0\number.ini"
))

вот только, из-за пробела не работало, ничего.

так тоже работает.

Код: Выделить весь код
echo:%number%>"%~dp0\number.ini"

Отправлено: 16:55, 12-02-2012 | #4


Старожил


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

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


Цитата kefirko:
можете популярно объяснить в чем была беда? »
Когда %number% раскрывается в цифру, cmd воспринимает конструкцию X> как перенаправление потока.
echo %number% >"%~dp0\number.ini" — есть пробел, не получается конструкция X>. Работает
>"%~dp0\number.ini" echo %number% — ваще не получается конструкция X>. Работает
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:00, 12-02-2012 | #5


Аватара для gora

Ушёл из жизни


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

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


Цитата kefirko:
"%~dp0\number.ini" »
Слеш здесь лишний, переменная %~dp0 сама содержит завершающий слеш.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:45, 12-02-2012 | #6


Старожил


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

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


gora
Не мешает. Зато лучше читается



А вот здесь лучше будет
for /f "usebackq" %%i in ("%~dp0\number.ini") do set /a number=%%i
или
for /f %%i in ('type "%~dp0\number.ini"') do set /a number=%%i

Последний раз редактировалось kiripanda, 12-02-2012 в 18:10.

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

Отправлено: 18:05, 12-02-2012 | #7


Аватара для root221

Старожил


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

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


kiripanda, что это у тебя за редактор? на скрине.

Отправлено: 19:02, 12-02-2012 | #8


Старожил


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

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


ЕдитПлюс (платный)
Примерно также выглядит http://wincmd.ru/directory/synplus.html (бесплатный)
не удалось только управляющие символы сделать полутоном

если раздражают, то можно их отключить

Но в обоих случаях подсветку правил под себя

Последний раз редактировалось kiripanda, 12-02-2012 в 19:33.


Отправлено: 19:16, 12-02-2012 | #9


Ветеран


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

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


Для ввода значения из текстового файла, содержащего единственную строку, нет необходимости в организации разбора. Достаточно простой конструкции из «set /p» с перенаправлением ввода:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>nul <0001.txt set /p sValue=
echo %sValue%

endlocal
exit /b 0
Редактор Far Manager'а вкупе с Colorer'ом:

Расцветка — одна из предустановленных, наиболее подходящая к моей цветовой схеме Far Manager'а (настолько, что даже не стал ничего править).
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:54, 12-02-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Ворд не открывает текстовый документ kostyam31 Microsoft Office (Word, Excel, Outlook и т.д.) 2 09-06-2011 14:17
Интерфейс - [решено] Текстовый документ alenos Microsoft Windows 2000/XP 4 09-03-2010 09:21
Разное - [решено] Не могу создать новый текстовый документ Artesmann Microsoft Windows Vista 2 24-12-2008 19:24
soft для добовление строки в текстовый документ oIo_DeN_oIo Программное обеспечение Windows 12 15-11-2006 23:06
Как открыть документ из командной строки? aldersubscribe Microsoft Windows 2000/XP 5 04-10-2005 07:02




 
Переход