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

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

Автор: king_stiven
Дата сообщения: 23.01.2008 18:04
lastduke

Я так понимаю, что в с:\temp\ находится один единственный файл`file_ddmmyy.xls`, если нет, то по каким критериям его искать?

set folder=с:\temp
for %%e in ("%folder%\*") do echo %%~nxe word> с:\temp\file2.txt
Автор: lastduke
Дата сообщения: 23.01.2008 18:27

Цитата:
Я так понимаю, что в с:\temp\ находится один единственный файл`file_ddmmyy.xls`



Цитата:
king_stiven
, в с:\temp будет 1 файл в виде file_??????.xls

да, приведенный Вами пример ничего не пишет в file2.txt.


Автор: Grim_Repo
Дата сообщения: 23.01.2008 18:48
2PuzzleW
Получается, что этот батник:
copy /b file.ttf+file2.ttf c:\windows\fonts\font3.ttf
склеит два шрифта в 1? А использовать эти 2 шрифта будет не возможно?
Вообщем, ситуация такова - на компакт диске в папке "Шрифты" лежат 2 шрифта Font1.ttf и Font2.ttf. Нужен батник (батник будет находится в одной папке со шрифтами), который копирует эти два шрифта в папку c:\windows\fonts и автоматически (без вмешательства пользователя) закрывается. Вот.

P.S.
А этот батник будет работать:
Код: copy /y file.ttf c:\windows\fonts\font1.ttf
copy /y file2.ttf c:\windows\fonts\font2.ttf
exit /b
Автор: 01MDM
Дата сообщения: 23.01.2008 18:52
OOD
Не совсем понятен вопрос. Копировать файлы, которые созданы сегодня? Или у которых в названии текущая дата?

Автор: lastduke
Дата сообщения: 23.01.2008 18:58

Цитата:
Не совсем понятен вопрос. Копировать файлы, которые созданы сегодня? Или у которых в названии текущая дата?


простите, к кому этот вопрос?

АП. сорри за глупый вопрос. не заметил
Автор: 01MDM
Дата сообщения: 23.01.2008 19:02
Grim_Repo
Почему нет? А просто взять и попробовать , или возникают трудности?

Автор: Grim_Repo
Дата сообщения: 23.01.2008 19:13
201MDM
На этом компе мне запрещены всякие опыты . А что может, и вправду, сработать мой скрипт?

P.S.
Подскажите, какой ip адрес лучше всего пинговать ну типа может мелкософта сервак или еще какой то наиболее подходящий для этих целей?

Подскажите, а что дает параметр -c ? Судя по справке мелких он выводит сообщение, только не понятно где?

Пример:
Код: shutdown -f -c "the time is now"
Автор: king_stiven
Дата сообщения: 23.01.2008 19:26
lastduke

У меня работает, винда xp pro русская

Обычные ошибки:

1 Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

2 В начале батника автоматом вставляй

@echo off
chcp 1251 > nul
Автор: lastduke
Дата сообщения: 23.01.2008 20:10
king_stiven

Большое спасибо, теперь работает. проблема была в кодировке (после копипаста с сайта).
перебил весь текст руками - заработало.

п.с. эхо офф как правило оставляю включенным для большей информативности.



Автор: king_stiven
Дата сообщения: 23.01.2008 20:47
Grim_Repo

@echo off -чтобы ход выполнения батника не выводился на экран

chcp 1251 > nul - бывает нужно, если в путях есть кириллица
Автор: Elroir
Дата сообщения: 23.01.2008 21:01
Grim_Repo

Цитата:
Подскажите, какой ip адрес лучше всего пинговать ну типа может мелкософта сервак или еще какой то наиболее подходящий для этих целей?

www.google.com


Цитата:
Подскажите, а что дает параметр -c ?

Если использовать еще и ключ -t, то на экране появится сообщение о том, что комп будет выключен/перезагружен через какое-то время и в этом сообщении будет поле для текста, который можно ввести после ключа -c.


Цитата:
вопрос - какой надо батник написать чтобы он удалял например файлы *.tmp и *.bak из папки XYZ


Код:
@for %%a in (tmp bak) do @del /q "XYZ\*.%%a"
Автор: king_stiven
Дата сообщения: 23.01.2008 21:03

Цитата:
Grim_Repo
И последний вопрос - какой надо батник написать чтобы он удалял например файлы *.tmp и *.bak из папки XYZ.



Код: for %%e in ("XYZ\*.tmp" "XYZ\*.bak") do del "%%e" /q
Автор: PuzzleW
Дата сообщения: 23.01.2008 21:35
Grim_Repo
Всё так
пинговать наврное все же правильнее всего localhost он же 127.0.0.1

shutdown -f -c "the time is now"
выдает сообщение в квадратном окошке "the time is now"
и перезагружает систему, попутно завершаю сопротивляющиеся задачи (-f)

Добавлено:
Grim_Repo

по поводу шрифтов: может разумнее использовать copy *.ttf c:\windows\fonts ?
и кстати лучше использовать не c:\windows\fonts, а %SYSTEMROOT%\Fonts

(так обеспечиваеться переносимость и работоспособность твоего скрипта на системе с windows, установленной в папку d:\win например или c:\xp)
Автор: Grim_Repo
Дата сообщения: 23.01.2008 22:01
2king_stiven
А @echo off нужен для того чтобы не показывалось окно батника?

А нужно ли использовать chcp 1251 > nul в данном батнике:
Код: chcp 1251 > nul for %%e in ("C:\*.tmp" "D:\*.bak") do del "%%e" /q
Автор: SymA
Дата сообщения: 23.01.2008 22:15

Цитата:
SymA
Для ярлыка лучше cmdow /run /hid some.cmd


ничего не изменилось


PuzzleW


Цитата:
SymA - когда у меня встала такая задача - я обошёлся следующим образом (про cmdow узнал только что из гугла)

----------------file.vbs-----------
sPath = "D:\\Work"
sCmd = "subst W: " & sPath
Set WshShell = Wscript.CreateObject("WScript.Shell")
WshShell.Run sCmd, 0, true
--------------/file.vbs------------


в vbs не силён

если необходимо открыть "D:\Recover\", то как это будет выглядеть ?

Автор: 01MDM
Дата сообщения: 23.01.2008 23:05
SymA
Ну да, при запуске через cmdow и если запускать не из консоли, окно на мгновение мигает.
В шапке есть утилита hstart.exe. Я обычно пользуюсь ей, окно вообще не появляется.

Код:
hstart.exe /nowindow "some.cmd"
Автор: Dekabryi
Дата сообщения: 24.01.2008 04:49
PuzzleW
все выключено !

Есть др более гиморойный способ. Решить задачу.
1) net view >>new_list.txt
2)затем сравниваем два файла . я например через Excel их сравнил.
Автор: PuzzleW
Дата сообщения: 24.01.2008 10:55
Блин, длинный ответ написал - и crash

Dekabryi
а второй файл что содержит? эталонный список всех компьютеров? так этот метод не работает

SymA
я тоже не силен

ты имеешь в виду открыть папку в Windows Explorer'e?

Grim_Repo
длинный ответ предназначался тебе, но, видимо, не судьба
будет он коротким
на русской windows запускаешь cmd.exe
и пишешь
echo /?
for /?
exit /?
shutdown /?
и читаешь
конкретика
-t для shutdown нужен иначе не успеешь ничего прочитать


Код:
@echo off
chcp 1251 > nul
copy Font1.ttf %SYSTEMROOT%\Fonts
copy Font2.ttf %SYSTEMROOT%\Fonts
Автор: Dekabryi
Дата сообщения: 24.01.2008 11:56
PuzzleW
первый фал мы выгружаем при помощи net view >> lan_list.txt
второй со списком компов уже есть ! и в екселе мутем формули по подбору !
Автор: king_stiven
Дата сообщения: 24.01.2008 12:06

Цитата:
Grim_Repo


1 нет
2 нужно, хуже всегда не будет
3 см. справку по команде del
4 нельзя
Автор: PuzzleW
Дата сообщения: 24.01.2008 13:27
Dekabryi
я тебя совсем не понял
напиши нормально свою задачу
или я что-то пропустил?
Автор: Grim_Repo
Дата сообщения: 24.01.2008 16:23
2PuzzleW

Код: @copy *.ttf %SYSTEMROOT%\Fonts
Автор: 01MDM
Дата сообщения: 24.01.2008 17:26
Grim_Repo
Ты можешь объяснить что тебе надо в результате? Если ты решил сам составить файл, то почему не почитать документацию? Загляни в %windir%\help и открой справочник по командам ntcmds.chm.
Автор: Grim_Repo
Дата сообщения: 24.01.2008 19:27
201MDM
Цитата:
Загляни в %windir%\help и открой справочник по командам ntcmds.chm
Каталог \help я снес еще при установке винды...

Цитата:
Ты можешь объяснить что тебе надо в результате?

1. Нужно скопировать шрифты в папку Fonts при этом не должно быть видно окно батника, и при этом нужно чтобы батник по завершении операции закрылся.

2. Требуется батник перезагружающий комп принудительно закрыв все программы, при этом не показывающий своего окна, и закрывающийся по завершении операции.

3. Требуется батник выключающий комп принудительно закрыв все программы, при этом не показывающий своего окна, и закрывающийся по завершении операции.

На этом все.
Автор: 01MDM
Дата сообщения: 24.01.2008 20:21
Grim_Repo
1,2,3 Пункты: штатной возможности скрыть окно нет. Можно использовать либо vbs, либо какую-нибудь стороннюю утилиту. В шапке есть ссылка на hstart.exe. Ee синтаксис:

Код:
hstart /nowindow "your.cmd"
Автор: Grim_Repo
Дата сообщения: 24.01.2008 20:58
201MDM
У меня возникли некоторые вопросы:

1. Так как это будет делаться на чужом компе все таки для перестраховки надо добавить chcp 1251 > nul
Код: @echo off
chcp 1251 > nul
copy /y *.ttf %windir%\fonts
Автор: 01MDM
Дата сообщения: 24.01.2008 21:14
Grim_Repo

Цитата:
А все эти батники после завершения операции закроются?

Да.


Цитата:
Подскажите, а обязательно для shutdown использовать /t 0

/t 0 указывает на время через которое выключится\перезагрузится компьютер. Если не указывать, то он выключится через 30 сек (по умолчанию)

Цитата:
Так как это будет делаться на чужом компе все таки для перестраховки надо добавить chcp 1251 > nul

Я думаю, что не обязательно.



Автор: Grim_Repo
Дата сообщения: 24.01.2008 21:36
201MDM
Подскажите, а если например файл *.zzz используется какой либо программой то этот батник:
Код: @echo off
chcp 1251 > nul
for %%e in ("XYZ\*.zzz" "XYZ\*.zzz") do del "%%e" /q
Автор: 01MDM
Дата сообщения: 24.01.2008 21:51
Grim_Repo
Если файл занят процессом то скорее всего он не удалится (может и удалиться если открыт но не используется), но выполнение продолжится, пока не переберутся все файлы с такой маской.
Автор: Grim_Repo
Дата сообщения: 24.01.2008 22:29
Подскажите, а батник:
Код: @echo off
chcp 1251 > nul
for %%e in ("XYZ\*.xyz" "XYZ\*.xyz") do del "%%e" /q

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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