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

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

Автор: KapralBel
Дата сообщения: 01.09.2006 13:31
xuiatar
В чем ты набираешь батнички? В блокноте?
Вставь сразу после @Echo Off
CHCP 1251
Автор: xuiatar
Дата сообщения: 01.09.2006 13:37
KapralBel
зато теперь в самой cmd все стало кракозябрами ))))


Добавлено:
KapralBel
но папка с русским названием создалась, ОК
я вообще то пишу батник для автоматической архивации 1с баз....
задумка какая - по шедулеру ночью пускается батник, который отцепляет всех юзеров от 1с баз, и выполняет архивирование баз в папки НазваниеБазы\Год\Месяц\1С от ДД.ММ.ГГ.rar
вот такая бодяга.....
Автор: KapralBel
Дата сообщения: 01.09.2006 13:41
xuiatar
В смысле?
Как ты видишь крикозябли
* При выполнении?
* при просмотре кода?

Добавлено:
xuiatar
В таком случае выгоднее создавать папки не по наименованиям месяца а по номеру 01, 02, ... 12 - сортировка будет понятней
Автор: xuiatar
Дата сообщения: 01.09.2006 13:45
KapralBel

Цитата:
Как ты видишь крикозябли

Когда находясь в cmd выполняю батник
он меняет кодировку в cmd и делает все нечитабельным


Добавлено:
KapralBel
Для удобства понятнее все-таки названия месяцев, а не номера
а видно команды или нет это уже после отладки будет неважно
еще работы дофига с этим скриптом........... хехе
Автор: KapralBel
Дата сообщения: 01.09.2006 13:50
Сразу после создания месяца поставь CHCP 866
Автор: xuiatar
Дата сообщения: 01.09.2006 13:55
KapralBel

Цитата:
Сразу после создания месяца поставь CHCP 866
спасибо да черт с ней с кодировкой....
я щас думаю как сделать чтобы папка с годом создавалась
Автор: KapralBel
Дата сообщения: 01.09.2006 14:09
xuiatar

Код: @Echo Off
For /F "delims=. tokens=1-3" %%a in ('Echo %Date%') Do (Set dDay=%%a) & (Set dMonth=%%b) & (Set dYear=%%c)
Set d
Автор: xuiatar
Дата сообщения: 01.09.2006 14:41
KapralBel
это как я увидел ситуацию
[more] @echo off
net time \\deep /set /y
CHCP 1251
cd /d d:\Archive\Подрядчик СВС\
SET T_YEAR=%date:~6,4%
SET T_MONTH=%date:~3,2%
mkdir %T_YEAR%
cd %T_YEAR%
rem ПРИРАВНИВАЕМ ЧИСЛО МЕСЯЦА К ЕГО НАЗВАНИЮ
if %T_MONTH% EQu 01 mkdir Январь
if %T_MONTH% EQu 02 mkdir Февраль
if %T_MONTH% EQu 03 mkdir Март
if %T_MONTH% EQu 04 mkdir Апрель
if %T_MONTH% EQu 05 mkdir Май
if %T_MONTH% EQu 06 mkdir Июнь
if %T_MONTH% EQu 07 mkdir Июль
if %T_MONTH% EQu 08 mkdir Август
if %T_MONTH% EQu 09 mkdir Сентябрь
if %T_MONTH% EQu 10 mkdir Октябрь
if %T_MONTH% EQu 11 mkdir Ноябрь
if %T_MONTH% EQu 12 mkdir Декабрь
CHCP 866 [/more]

Добавлено:
теперь проблема - нужно перейти в каталог месяца но переменную в его качестве взять нельзя так как у нас каталог не цифровое значение а текстовое......
Автор: KapralBel
Дата сообщения: 01.09.2006 14:47
xuiatar
Вроде бы правильный скрипт, а в чем проблема?
Автор: xuiatar
Дата сообщения: 01.09.2006 14:47
нужно чтото вроде cd _то_что_создал_mkdir_
Автор: KapralBel
Дата сообщения: 01.09.2006 14:48
xuiatar

Цитата:
теперь проблема - нужно перейти в каталог месяца но переменную в его качестве взять нельзя так как у нас каталог не цифровое значение а текстовое.....

Тогда делай аналогично году
Не создавай папку сразу, а присваивай переменной
Потом папку создаешь по переменной
Автор: xuiatar
Дата сообщения: 01.09.2006 14:56
KapralBel

Цитата:
Тогда делай аналогично году
Не создавай папку сразу, а присваивай переменной
Потом папку создаешь по переменной

тут немного не догнал

Добавлено:
типа надо взять тот string который вышел из сравнения SET T_MONTH=%date:~3,2% и перейти в него
не знаю как обтяпать....
Автор: KapralBel
Дата сообщения: 01.09.2006 15:06
xuiatar

Код: if %T_MONTH% EQu 01 Set ST_MONTH=Январь
if %T_MONTH% EQu 02 Set ST_MONTH=Февраль
if %T_MONTH% EQu 03 Set ST_MONTH=Март
...
MD %ST_Month%
CD %ST_Month%
Автор: xuiatar
Дата сообщения: 01.09.2006 15:12
SET T_YEAR=%date:~6,4%
SET T_MONTH=%date:~3,2%
mkdir %T_YEAR%
cd %T_YEAR%
if %T_MONTH% EQU 09 _то_надо_чтобы_этой_переменной_было_присвоено_значение_ Сентябрь
а потом cd %T_MONTH%
Автор: KapralBel
Дата сообщения: 01.09.2006 15:17
xuiatar
А чем тебе мой код не нравиться
Единсвенное различие - Номер месяца и текстовое его значение в различный переменных
Автор: xuiatar
Дата сообщения: 01.09.2006 15:18
KapralBel

Цитата:
MD %ST_Month%

это синтаксис UNIX )))))))))))


Добавлено:
KapralBel
мне все нравится - я тестирую........

Автор: KapralBel
Дата сообщения: 01.09.2006 15:22
xuiatar
Что синтаксис ЮНИКС???
MD??
Дык поставь MkDir
Автор: xuiatar
Дата сообщения: 01.09.2006 15:23
KapralBel

Цитата:
это синтаксис UNIX )))))))))))

сорри, в виндах тоже так можно......
но когда делаешь MD %ST_Month% то подставляется не значение переменной а текст %ST_Month% - косяк


Добавлено:
KapralBel
блин - мой косяк!!!!!!!
все работает, спасибо)))))
наисправлял и не досмотрел........

Автор: KapralBel
Дата сообщения: 01.09.2006 15:28
xuiatar

Цитата:
но когда делаешь MD %ST_Month% то подставляется не значение переменной а текст %ST_Month% - косяк

Не понял...
У меня все нормально
Приводи глючный батник
Автор: xuiatar
Дата сообщения: 01.09.2006 16:08
Как заставить cmd полюбить пробелы?
если я указываю в качестве переменной папку с названии которой содержатся пробелы то скрипт рушится.
Это меня совсем не устраивает.....
Как вариант я пробовал менять пробелы на подчеркивания, но только в качестве тестирования.
видимо cmd понимает пробел как конец предыдущей и начало следующей команды?
часть названия за пробелом просто отрезается
Автор: ViSiToR
Дата сообщения: 01.09.2006 17:50
xuiatar


Цитата:
Как заставить cmd полюбить пробелы?

Кавычки на клаве не только для красоты сделанны

Переменную нужно заключить в двойные кавычки...


Код: Set Var=переменная с пробелами...
echo "%Var%"
Автор: xitsa
Дата сообщения: 01.09.2006 19:21
GreaseOD

Цитата:
А как на счет добавить в конец строки значение?
Посмотрел я документацию про sed, но пока еще совсем не разобрался.

Тебе во все строки или в конкретную?
Во все:

Код:
ssed -e "s/$/Text/" e.txt
Автор: evle
Дата сообщения: 02.09.2006 19:03
Как получить список букв разделов на всех жёстких дисках?
Перебирать все возможные буквы некрасиво, да и не совсем понятно как отличать жёсткий диск от CD.
Перебором строк из diskpart со сценарием list volume можно, но зависит от языка и, возможно, от других тонкостей.
Интересует решение для WinXP.
Автор: Refugee
Дата сообщения: 02.09.2006 20:37
evle
show-fixed-drives.vbs:
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 Then
        WScript.Echo( d.DriveLetter )
End If
Next
Автор: tolyn77
Дата сообщения: 04.09.2006 11:26
вот такую ошибку выдаеть
"net" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
на это
if exist q:\nul net use q: /delete /yes
net use q: \\global\netlogon
Автор: KapralBel
Дата сообщения: 04.09.2006 11:36
tolyn77
А программа net.exe на диске присутсвует?
Автор: NightBowl
Дата сообщения: 04.09.2006 12:07
evle

Цитата:
Как получить список букв разделов на всех жёстких дисках?

Все диски на машине:
fsutil fsinfo drives
Типы дисков:
fsutil fsinfo drivetype <letter:>
Автор: tolyn77
Дата сообщения: 04.09.2006 13:30
да разобрался в путях не были системные диры прописаны
Автор: PerpleXOR
Дата сообщения: 04.09.2006 16:05
пытаюсь применить на нескольких компах reg - файл, используя psexec. Пишу

psexec -d \\532-15 -s cmd " /c regedit c:\1.reg"

и -нифига не применяется!
Может не так пишу ?
Автор: Mayskii
Дата сообщения: 04.09.2006 17:58

Код: md Exec
md Archives
md Music
md Web_pages
md Images
md Doc's
md Project's
move *.exe Exec\
move *.rar archives\
move *.zip archives\
move *.arj archives\
move *.mp3 music\
move *.wav music\
move *.htm* web_pages\
move *.mht web_pages\
move *.bmp images\
move *.gif images\
move *.jpg* images\
move *.jpeg images\
move *.psd images\
move *.txt doc's
move *.doc doc's\
move *.nsi project's\
move *.pdf Doc's\

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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