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

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

Автор: hidravlik
Дата сообщения: 17.08.2006 10:07
To GreaseOD, ViSiToR
Большое спасибо! Круто.
Автор: ViSiToR
Дата сообщения: 17.08.2006 10:29
А если надо в кучю (и дату и время вместе соеденить), то можно так:


Код: md %date: =%%time:~0,2%.%time:~3,2%
Автор: hacsoft
Дата сообщения: 17.08.2006 11:15

Цитата:
а вот как бы сделать чтобы с пробелом было? (между датой и временем).

Вот так:

Код: md "%date: =% %time:~0,2%.%time:~3,2%"
Автор: VladimirKvach
Дата сообщения: 17.08.2006 11:59
Друзья, пробел появляется когда время меньше 10 часов.
Переведите время на утро и попроверяйте ваши решения.
Автор: ViSiToR
Дата сообщения: 17.08.2006 12:13
hacsoft

Цитата:
Вот так:

ты читал какая была задача? ...


09:21 17-08-2006 - От hidravlik

Цитата:
Есть такой батничек: md  %date%%time:~0,2%%time:~3,2% Проблема в том, что создаются 2 каталога. Один с именем даты, другой - времени. А нужен один каталог Помогите, кто знает.


В твоём примере, создаются тоже две папки, я хотел бы узнать, как сделать в одной папке, но чтобы сначало была дата, а потом через пробел, время.
Автор: VladimirKvach
Дата сообщения: 17.08.2006 12:15
Вот рабочий пример. Пробел не просто удаляется, а заменяется на ноль, так ведь нагляднее.

set dtx=%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%
set dt=%dtx: =0%
md %dt%

Пославил на компе 6 утра, создался каталог 20060817_0608
Автор: Kirillhome
Дата сообщения: 17.08.2006 12:21
ViSiToR
А вот так:
md "%date% %time:~0,2%-%time:~3,2%"
всё работает хорошо

Ну, или если взять за образец более наглядный пример от VladimirKvach, то красиво (на мой взгляд ) получается так:


Код:
set dtx=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%
set dty=%dtx: =0%
set dt=%dty:_= %
md "%dt%"
Автор: anvarga
Дата сообщения: 17.08.2006 13:02
Помогите пожалуйста.
Маленький вопросик. Как бат-файлом очистить корзину? Сам он может находиться где угодно. И удалить каталог, имя и путь которого уже прописано в батнике.
Спасибо.
Автор: ViSiToR
Дата сообщения: 17.08.2006 13:31
Kirillhome
Оба, а про кавычки и совем забыл Спасибо! а hacsoft извини, я не увидел в твоём примере кавычек и тебе конечно сасибо ...


Цитата:
Папка получается типа ГГГГ-ММ-ДД ЧЧ-ММ

В этом случае, пишется ноль и в конце времени...

Вот как бы сделать чтобы 0, добовлялся только в начало времени (если текущее время, имеет одну цифру в начале - 9:00 - т.е если в региональных Стандартах не указанно время как ЧЧ)?

Т.е чтобы конечный результат, был примерно такой (если время, допустим 9:00):

17.08.2006 09.00

А если текущее время, допустим такое 10:00, то чтобы результат был такой:

17.08.2006 10:00 - т.е чтобы в таком случае, не добавлялся ноль... или как прописать формат времени, в двойном виде (ЧЧ).
Автор: KapralBel
Дата сообщения: 17.08.2006 13:32
anvarga
Какя операционка?
Для ВинХР RD C:\Papka /Q/S
Для Вин98 DelTree /?
Автор: Kirillhome
Дата сообщения: 17.08.2006 13:35
anvarga

Удаление каталога.

RMDIR [/S] [/Q] [диск:]путь
RD [/S] [/Q] [диск:]путь

/S Удаление дерева каталогов, т. е. не только указанного каталога, но и всех содержащихся в нем файлов и подкаталогов.

/Q Отключение запроса подтверждения при удалении дерева каталогов с помощью ключа /S.
Автор: KapralBel
Дата сообщения: 17.08.2006 13:43
ViSiToR


Цитата:
17.08.2006 10:00 - т.е чтобы в таком случае, не добавлялся ноль... или как прописать формат времени, в двойном виде (ЧЧ).

Настройте ормат времени/даты в региональных настройках
Автор: Kirillhome
Дата сообщения: 17.08.2006 13:51
ViSiToR
В каком случае добавляется???

При региональных настройках времени
H:mm:ss

Ставлю время 9:00
Получаю папку
2006-08-17 09-00

Ставлю время 10:00
Получаю папку
2006-08-17 10-00

Ставлю время 0:00
Получаю папку
2006-08-17 00-00

Изменил региональные настройки времени на
HH:mm:ss (потом еще и на HH:m:ss) - всё тоже самое - папка получается именно в формате ГГГГ-ММ-ДД ЧЧ-ММ
Автор: ViSiToR
Дата сообщения: 17.08.2006 14:01
Kirillhome
KapralBel
Спасибо! Но я кажется написал :


Цитата:
Вот как бы сделать чтобы 0, добовлялся только в начало времени (если текущее время, имеет одну цифру в начале - 9:00 - т.е если в региональных Стандартах не указанно время как ЧЧ)?


А anvarga просил очистить корзину, а не удалить папку. Вот такое я к сожалению не знаю как сделать хотя интересно бы узнать.
Автор: Kirillhome
Дата сообщения: 17.08.2006 14:13
ViSiToR
Может я чего-то не понимаю, но у меня даже при региональной настройке H:mm:ss
результатом выполнения %time% получается строка, в которой под часы - два символа.
До 10 часов - первый символ пробел, который и заменяется на ноль
Код: set dty=%dtx: =0%
Автор: ViSiToR
Дата сообщения: 17.08.2006 14:22
Kirillhome

Цитата:
первый символ пробел, который и заменяется на ноль

Вот я и хочю чтобы там не было нуля, а чтобы был пробел, а ноль чтобы был перед часом:

17.08.2006 09:00
Автор: Kirillhome
Дата сообщения: 17.08.2006 14:32
ViSiToR
Разбираем построчно...


Код:
set dtx=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%
Автор: ViSiToR
Дата сообщения: 17.08.2006 15:06
Kirillhome
Странно, но в каком то времени, у меня добовлялся ещё 0 (ноль) в конец имени папки... теперь всё нормально.. спасибо!
Автор: KapralBel
Дата сообщения: 17.08.2006 15:44
ViSiToR

Цитата:
А anvarga просил очистить корзину, а не удалить папку. Вот такое я к сожалению не знаю как сделать хотя интересно бы узнать.



Цитата:
Маленький вопросик. Как бат-файлом очистить корзину? Сам он может находиться где угодно. И удалить каталог, имя и путь которого уже прописано в батнике.


1-е ответ был как удалить папку
2-е если удалить папку корзины - она (корзина) почиститься . Сама папка корзины будет автоматически создана при следующем удалении в неё
Автор: ViSiToR
Дата сообщения: 17.08.2006 17:59
KapralBel

Цитата:
если удалить папку корзины - она (корзина) почиститься

А если корзина общая, т.е на все диски одна корзина, тогда где хранится её папка?
Автор: Kirillhome
Дата сообщения: 17.08.2006 18:27
А возможно ли узнать длину строки из батника???
Автор: bredonosec
Дата сообщения: 17.08.2006 19:29

Цитата:
А если корзина общая, т.е на все диски одна корзина, тогда где хранится её папка?
- насколько видел, обычно вынь создает на каждом "диске" (разделе) отдельную корзину в его корне.
Есть, вообще-то некий твик реестра, позволяющий пеерименовывать корзину, но как помнимаю, не её местоположение менять.


Код: [HKEY_CLASSES_ROOT\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"Attributes"=hex:50,01,00,20
Автор: Refugee
Дата сообщения: 17.08.2006 21:27
Kirillhome
setlocal enabledelayedexpansion
call :Len str
echo !Len!
goto :Eof

:Len
set Str=%1
set Len=0
:Loop
if "!Str!"=="" goto :Eof
set /a Len=!Len!+1
set Str=!Str:~1!
goto Loop

или вызывать jscript - WScript.Echo( WScript.Arguments(0).length);
Автор: Kirillhome
Дата сообщения: 18.08.2006 01:22
Refugee
Спасибо, я примерно по такому пути и пошёл..

ViSiToR

Цитата:

Код:
@echo off
chcp 1251
find /i /c "Привет Мир" "test.tmp" | find /c ": 0" > f.tmp
for /f %%i in (f.tmp) do if %%i==0 echo ok > ok.tmp
del /q f.tmp & exit


Этот батник, делает поиск в файле test.tmp, и по идее, он должен находить строчку содержащую "Привет Мир", и если слова были найдены, то создаётся файл ok.tmp как метка...

Но приведённый мной пример, сработает только если файл в котором происводится поиск, в кодировке ANSI, если он в кодировке UTF-8, то поиск не осуществляется - в принципе это я и хочю решить.
Автор: anvarga
Дата сообщения: 18.08.2006 09:48
Вин ХР
Забыла сказать что каталог не пустой, а с файлами и подкаталогами.
Автор: xitsa
Дата сообщения: 18.08.2006 10:01
GreaseOD


Цитата:
Как можно в текстовом файле найти число и поменять его на другое ГЛАВНОЕ ЧТОБЫ ФАЙЛ ОСТАЛСЯ ТАКИМ КАК ОН БЫЛ ДО ИЗМЕНЕНИЯ ТОЛЬКО УЖЕ С НОВЫМ ЧИСЛОМ
ЕСЛИ МОЖНО ПРИМЕР ПЛИЗЗЗЗ


Не заметил ответа, попробуй это:

ssed.exe -e "s/\<121\>/1331/g" Input.txt >Output.txt

Заменяется число 121, которое стоит отдельно на 1331.

ssed — SuperSED Взять можно здесь
Автор: GreaseOD
Дата сообщения: 18.08.2006 10:25
Пытаюсь изменить слов в текстовом файле. Сделал следующее:
d.bat
****************************
for /F "eol=; tokens=1,2,3,4" %%i in (myfile.txt) do set str1=%%l
echo %str1%
%var:str1=%
set new=%str1:07=09% (меняю ('200607') на ('200609')
%new%
*******************************


myfile.txt
******************************
Hello World 1 2 3
how are you 3 4 5 6
qwe qwe qwe ('200607')
**********************************

Все меняется, (в переменной %new%), но КАК ЭТУ ПЕРЕМЕННУЮ ЗАСУНУТЬ ОБРАТНО В MYFILE.TXT НА ЭТОЖЕ МЕСТО И ЧТОБЫ ВСЕ ОСТАЛЬНЫЕ СЛОВА ОСТАЛИСЬ ТОЖЕ НА СВОИХ МЕСТАХ, И ЕЩЕ ВСЕ ЭТО СОХРАНИТЬ???????????????????????
Автор: Open999
Дата сообщения: 18.08.2006 10:46
Ребят нужна помощь.
Есть некий каталог IN. Туда постоянно валятся файлы. Нужно написать батник который будет копировать из этого каталога IN в другой каталог только новые файлы, которые за сегодня еще не копировались.

Т.е. в IN с различной периодичностью попадают новые файлы и только их и надо копировать.
Автор: KapralBel
Дата сообщения: 18.08.2006 11:46
Open999
Если не критично расположение файлов именно в этой папке, делай следующее
Копируй файл в нужный каталог
А затем перемещай файл из IN в IN\Parsed
Автор: anvarga
Дата сообщения: 18.08.2006 11:56
Пожалуйста, помогите еще разик

Как найти папку, имя ее явно прописано? То есть поиск по диску, или даже по Рабочему столу только, хотя нет, имя юзера неизвестно.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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