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

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

Автор: res2001
Дата сообщения: 27.09.2010 12:26
Free_Soft
Семерки нету под рукой...
Автор: BVV63
Дата сообщения: 27.09.2010 12:28
Господа, не сочтите за оффтопик, нужно для создания батника.
Появился парадоксальный вопрос: что есть сотая мегабайта? Это ведь не десять килобайт, поскольку 1 Мб = 1024 кб. Да и ежели число килобайт тупо умножить на десять, а затем 2 последних разряда отделить запятой, то последней цифрой всегда будет 0. Надоумьте, плиз, а то что-то не соображу никак...
Автор: NIKZZZZ
Дата сообщения: 27.09.2010 12:42
BVV63

Цитата:
что есть сотая мегабайта?

Считать надо в байтах 1 Мб = 1024 кб = 1048576 байт

сотая мегабайта = 10,24 кв

Автор: bomzzz
Дата сообщения: 27.09.2010 13:07
это зависит от того, что имел ввиду тот кто ввел такую меру размера.
Автор: Mark_Titov
Дата сообщения: 27.09.2010 13:51

Цитата:
Файлы описаний групповых политик лежат, по моему, тут: C:\WINDOWS\security\templates\
В этих файлах есть все ключи реестра, которые меняет политика.

Не нашел этой настройки там...
Автор: Free_Soft
Дата сообщения: 27.09.2010 13:53
А можно как-то проверить версию файла из комстроки?
Автор: Accessor
Дата сообщения: 27.09.2010 16:46
Народ, подскажите, как мне в батнике определить результат работы команды find или findstr. Т.е. я делаю поиск по файлу, а в следующей строчке мне надо проанализировать результат работы - найдено или нет? vyt нужен всего лишь признак "да" или нет". И в зависимости от результата выполнить ветвление.
Пробовал:
findstr /c:mystring filename
if errorlevel 0
но что-то не отрабатывает
Автор: wolf0425
Дата сообщения: 27.09.2010 17:14

Код: Пробовал:
findstr /c:mystring filename
if errorlevel 0
но что-то не отрабатывает
Автор: bomzzz
Дата сообщения: 27.09.2010 17:16
еррорлевел скорее всего фаинд не возвращает. пользуйся ключами

Добавлено:
че возвращает? в седьмом досе фаинд еще отдельным файлом идет вроде, а в 8 уже в комманд коме
Автор: Accessor
Дата сообщения: 27.09.2010 17:27
wolf0425
прошу прощения, может я туплю, но вот простой живой пример:

Код:
1>nul findstr /c:"mercedes" <"%windir%\inf\usb.inf"
if errorlevel 1 echo (not found) else (echo found)
Автор: NIKZZZZ
Дата сообщения: 27.09.2010 17:28
Free_Soft

Цитата:
А можно как-то проверить версию файла из комстроки?


ResHacker.exe -extract File.exe, Info.rc, versioninfo ,,

Далее анализ Info.rc файла.
Автор: bomzzz
Дата сообщения: 27.09.2010 17:39
if %errorlevel%==1 (echo not found) else echo found

Добавлено:
errorlevel 1 так кажеца тоже мона
Автор: Accessor
Дата сообщения: 27.09.2010 17:44
bomzzz
попробуй мой пример. эти несчастные две строчки кода. не работает! зависает на первой строчке.

Добавлено:
при всём уважении к твоему статусу, попрошу впредь пробовать те конструкции, которые ты советуешь людям, а не давать огульных советов, которые "кажецо" или "возможно" или "наверняка" будут работать.
Автор: bomzzz
Дата сообщения: 27.09.2010 17:52
я тебе так и даю, сам делай
Автор: Accessor
Дата сообщения: 27.09.2010 17:58
bomzzz
Ты даешь нерабочие советы, основанные на твоих догадках. Твои сообщения НЕ несут вообще никакой смысловой нагрузки. Пожалуйста, воздержись впредь от подобных действий.
Автор: bomzzz
Дата сообщения: 27.09.2010 17:59
хватит тупить. у тебя скобка не там стоит
Автор: NIKZZZZ
Дата сообщения: 27.09.2010 18:00
Accessor

Цитата:
но вот простой живой пример

Такие батники нужно отлаживать, к сожалению в доках часто не достает информации об ErrorLevel.

Например, пару страниц назад я приводил пример сравнения двух файлов


Код: FC file1.txt file2.txt | FIND "различия не найдены" > nul
IF ERRORLEVEL 1 Действие
Автор: Accessor
Дата сообщения: 27.09.2010 18:04
bomzzz
Цитата:
хватит тупить. у тебя скобка не там стоит

Ещё раз повторяю, не отрабатывает первая строчка. Понимаешь русский? Первая тсрока НЕ отрабатывает. До второй дело вообще не доходит. Возьми и запусти указанный пример, чтоб убедиться.
Автор: bomzzz
Дата сообщения: 27.09.2010 18:06
да мне похер на твою строчку, и нет желания огород городить из файлов
Автор: Beeboba
Дата сообщения: 27.09.2010 18:44
переименование всех файлов в папке с добавлением даты и времени формата (пример 2010_09_27_21_34_имя ориг файла)

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



for %%a in (*.*) do ren "%%a" "%date:~6,4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%%a"


естественно фильтр в моем случае *.zip не переименовывает сам CMDшник





Автор: wolf0425
Дата сообщения: 27.09.2010 23:15
Accessor не знаю как у тебя, а у меня (win7) C:\Windows\inf\usb.inf - уникодный, с ним findstr напрямую работать не может, а перенаправление из него - почему-то завешивает.
поэтому делаем так:

Код: more "%windir%\inf\usb.inf" | findstr /c:"mercedes" >nul
if errorlevel 1 (echo not found) else (echo found)

more "%windir%\inf\usb.inf" | findstr /c:"Version" >nul
if errorlevel 1 (echo not found) else (echo found)
Автор: BVV63
Дата сообщения: 28.09.2010 05:50
NIKZZZZ
Насчёт вчерашнего вопроса про 0,01 Mb. Ну да, глупый, конечно, вопрос . Сегодня с утра мозг работал получше и я по дороге на работу сообразил, что ежели 1 Мб=1048576 байт, то 0,01 Mb=10486 байт. Что-то вчера, видать, я заработался ...
Автор: Accessor
Дата сообщения: 28.09.2010 08:46
wolf0425
Спасибо за помощь. Сейчас буду изучать.
У меня w2k3 и usb.inf тоже unicode.
Короче, я вчера сидел мудрил дома на XP, так там вообще findstr не работает. Просто тупо ничего не ищет. В w2k3 на работе всё отрабатывает, а дома на XP - нет. Я уже замечал нечто подобное с разницами работы команд reg.exe на XP и на w2k3, и ещё какую-то команду я "ловил" на том, что она по-разному реализована в разных операционках. Ладно. Пришлось выдумывать конструкцию с помощью банального find. Итого, вот что получилось:
Код: for /f "delims=: tokens=1,2*" %%i in ('find /c /i "nokia" %windir%\inf\usb.inf') do if %%k gtr 0 (echo found) else (echo not found
Автор: BVV63
Дата сообщения: 28.09.2010 08:58
Accessor

Цитата:
Я уже замечал нечто подобное с разницами работы команд reg.exe на XP и на w2k3

Да, там разница в 2 предварительные "ненужные" строки. Приходится парсить вывод посредством FindStr.
Автор: Accessor
Дата сообщения: 28.09.2010 09:13
BVV63
Да, там и набор ключей разный. Я столкнулся с тем, что пишу у себя на w2k3 на работе, а потом на XP оно не работает, из-за того, что количество опций на XP порезано
Вспомнил, кажется ещё xcopy.exe тоже разнятся на обсуждаемых операционках.
Автор: smirnvlad
Дата сообщения: 28.09.2010 18:52
Beeboba

Цитата:
переименование всех файлов в папке с добавлением даты и времени формата (пример 2010_09_27_21_34_имя ориг файла)...


создаю тысячу файлов "%номер%.zip" и батник с кодом выше маску меняю на *.zip, загружаю дисковую систему запросами, запускаю батник и вижу файл "2010_09_28_23_43_2010_09_28_23_43_10.zip" т.е. переименованный файл переименовывался ещё раз
чтобы такое избежать

Код: for /f "tokens=*" %%a in ('dir /b *.zip') do ren "%%a" "%date:~6,4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%%a"
Автор: LikvidatorMax
Дата сообщения: 28.09.2010 20:08
Пытаюсь удалить файл с помощью del /q /s /f "%CPath%"
где %CPath% путь, имя файла и расширение, которое берется из файла.

Не удаляется, пишет: "Could Not Find %CPath%"

Файл скрытый, специфичный (системный?), но с правами вроде все нормально и cmd запускается с правами администратора в Windows 7.

Есть ли средство мощнее?
Автор: Free_Soft
Дата сообщения: 28.09.2010 20:21
LikvidatorMax

Код: del /f /q /a s h "%CPath%"
Автор: Accessor
Дата сообщения: 29.09.2010 09:32
Народ, есть вопрос. Хочу сцепить два юникодных файла. Сцепляю два конфига для 1С (*.v8i). Одна конфигурация в первом файле. Вторая, соответственно, во втором. Команды для сцепки пробовал разные:
1. copy file1+file2 ibases.v8i
2. type file1 > ibases.v8i & type file1 >> ibases.v8i
3. for /f "tokens=*" %i in (file1,file2) do echo %i >> ibases.v8i
Во всех случаях на стыке двух файлов закрадывается символ с кодом 0xfeff, который потом мешает нормальной работе 1С. Т.е. при запуске 1С в окне выбора конфигурации, видна только первая конфа, а вторую отрезает 1С своими силами, из-за того, что она с посторонним символом и 1С считает ещё мусором и с лёгкостью удаляет её из результирующего файла конфигурации. Вопрос, как сцеплять, чтоб не было мусора. Либо как удалить этот мусор сразу после сцепки двух файлов?
Автор: res2001
Дата сообщения: 29.09.2010 10:04
Accessor
А в исходных файлах эти символы есть?
Если нет, то добавь в команду copy ключик /b: copy /b file1+file2 ibases.v8i

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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