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

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

Автор: sergij
Дата сообщения: 10.03.2010 20:17
king_stiven

О теперь получилось Спасибо Вам Ребята !!!!!

А нельзя вот это пояснить

if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.

а вдруг понадобится 10 колонок делать и как их красиво выровнять под заголовок???
Автор: mugil_cephalus
Дата сообщения: 10.03.2010 20:46
sergij
если делать 10 колонок, то придется делать 10 циклов for
см for /?
а блок кода
Цитата:
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.

нужен просто как счетчик
см if /?
set /?
echo. - вывод пустой строки
Уильям Станек - Командная строка Microsoft Windows - http://rapidshare.com/files/89629093/Stanek_CLI_MS_Win.rar
см help - C:\WINDOWS\Help\ntcmds.chm
форматирование в батниках не предусмотрено - я ровнял "на глаз" пробелы под заголовок
Автор: kermit
Дата сообщения: 10.03.2010 20:56
king_stiven

Цитата:
Ну не знаю, как насчёт красоты, можно так:


о! запускать пиканье отдельным батником это оригинально!
как я сам не додумался
Автор: mugil_cephalus
Дата сообщения: 10.03.2010 20:57
king_stiven

Цитата:
taskkill /F /FI "WINDOWTITLE eq dfgh" /im cmd.exe /T

у тебя какая win? english?
а то у меня на rus - "порнография" (это из станека):

я с фильтром пока не связывался - не знаю как отреагирует на кириллицу:
X:\>tasklist /v

Имя образа PID Имя сессии № сеанса Память Статус Пользователь Вр
емя ЦП Заголовок окна
========================= ====== ================ ======== ============ =============== ================================================== ======
====== ========================================================================
System Idle Process 0 Console 0 16 КБ Работает NT AUTHORITY\SYSTEM 12

но раньше глючило
Автор: sergij
Дата сообщения: 10.03.2010 21:14
mugil_cephalus
За ссылку спасибо -остальное и другое имел Вот сделал на 5 циклов и благодаря именно Вам оно работает - Ещё раз Спасибо

Код: chcp 1251
setlocal enabledelayedexpansion
echo Имя комьютера     MAC-адрес    Пользователь IP-Адрес E-Mail >>out.txt
:loop
for /f "tokens=* %skp%" %%i in (001.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (002.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (003.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (004.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (005.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+2
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.
goto:loop
)))))
Автор: king_stiven
Дата сообщения: 10.03.2010 21:34
mugil_cephalus
у меня рус работает

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

поясни. что имеешь в виду.
Автор: mugil_cephalus
Дата сообщения: 10.03.2010 22:13
king_stiven
в command line mode:
1)
X:\>TASKLIST /FI "STATUS eq running"
Ошибка: Фильтр поиска не опознан.

2)
X:\>tasklist /fi "Статус eq Работает"
Ошибка: Фильтр поиска не опознан.

еще
X:\>TASKLIST /M wbem*
Ошибка: Фильтр поиска не опознан.

3)
X:\>TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
Ошибка: Фильтр поиска не опознан.

4) а это работает (странно) :
X:\>tasklist /fi "WINDOWTITLE ne z"

5)
X:\>tasklist /fi "PID gt 1000"
Ошибка: Фильтр поиска не опознан.

6) работает:
X:\>tasklist /fi "IMAGENAME eq explorer.exe"

7)
X:\>tasklist /fi "SERVICES eq PlugPlay"
Ошибка: Фильтр поиска не опознан.

8)
X:\>tasklist /m ntdll.dll
Ошибка: Фильтр поиска не опознан.
Автор: king_stiven
Дата сообщения: 10.03.2010 22:58
mugil_cephalus
taskkill /F /FI "PID eq 2716" /im cmd.exe /T
Успешно: Процесс, с идентификатором 3852, дочерний процесса 2716, был завершен.
Успешно: Процесс, с идентификатором 2716, дочерний процесса 2144, был завершен.

тоже работает, не путай TASKLIST и taskkill. С TASKLISTом можешь поковыряться, может сам напутал.
Автор: mugil_cephalus
Дата сообщения: 10.03.2010 23:05
king_stiven

Цитата:
тоже работает, не путай TASKLIST и taskkill.

я их не путаю, просто фильтры у taskkill'a похожи или идентичны tasklist'u
Автор: Kirillhome
Дата сообщения: 11.03.2010 01:15
mugil_cephalus

C:\>TASKLIST /FI "Состояние eq running"
Информация: Задачи, отвечающие заданным критериям, отсутствуют.

C:\>TASKLIST /FI "Status eq running"
Ошибка: Фильтр поиска не опознан.

Похоже, действительно проблемы в локализации - если взять TaskList здесь (англ., версия 5.1.2600.0) - то всё прекрасно работает, в отличии от родного (в XP Rus) (рус., версия 5.1.2600.5512).

Полная какая-то чепуха...
В родном русском tasklist работает и выводит одинаковую информацию
tasklist /fi "Состояние ne Running"
tasklist /fi "Состояние ne Not Responding"


Добавлено:
А вообще - всё уже было
Автор: kermit
Дата сообщения: 11.03.2010 08:41
подскажите, как из скрипта отформатировать переносной диск в NTFS?
Виндовый родной format задает много вопросов, отключить которые не получается
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 08:59
Kirillhome
а у тебя какая машина?
у меня 5.1.2600.5512 rus и пишет так:

Цитата:
Имя образа PID Имя сессии № сеанса Память Статус Пользователь Вр
емя ЦП Заголовок окна
========================= ====== ================ ======== ============ =============== ================================================== ======
====== ========================================================================
System Idle Process 0 Console 0 16 КБ Работает NT AUTHORITY\SYSTEM 12

то есть у меня в tasklist /v - "Статус", а у тебя - "Состояние" ?
Автор: Kirillhome
Дата сообщения: 11.03.2010 09:14
mugil_cephalus
XP SP3 Rus
Заголовок у "родного" taskList-а - такой же, как у тебя.
Но при этом:
C:\>tasklist /fi "Статус eq running"
Ошибка: Фильтр поиска не опознан.

C:\>TASKLIST /FI "Состояние eq running"
Информация: Задачи, отвечающие заданным критериям, отсутствуют.

Возможно, конечно, "состояние" - это ещё что-то перевели (как, к примеру, не "Users", а "Пользователь"; не "PID", а "ID процесса"; не "windowtitle", а "Название окна" - и т.д.) - не знаю.
Нормальной справки так и не нашёл по русской версии tasklist-а.
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 09:26
Kirillhome
зря я в школе учил немецкий, учил бы английскйи - поставил бы себя win eng...
уж лучше бы китайский учил - авось пригодился бы...

Добавлено:
Kirillhome
я раньше сталкивался с сбоями в tasklist'e, поэтому фильтры не юзал, а у taskkill'a - похожие фильтры, - с taskkill'om у тебя не было проблем с фильтром ?
Автор: Kirillhome
Дата сообщения: 11.03.2010 10:17
mugil_cephalus
Я для себя очень мало чего из этой темы применяю, а "свечусь" в ней - так как просто интересно разобраться и помочь окружающим
На сколько я понял, у taskkil-а фильтры действуют согласно справке (вне зависимости от локализации), в отличии от tasklist-а.
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 10:31
Kirillhome
когда я читал фигурнова (2003-ий год) , мне, в отличие от большинства юзеров, очень понравился cli (тогда - dos/batch) , а не gui

Добавлено:
kermit

Цитата:
Виндовый родной format задает много вопросов, отключить которые не получается

покажи листинг
p.s.
http://forum.ru-board.com/forum.cgi?forum=84
--------------------
ты об этом?
Автор: Kirillhome
Дата сообщения: 11.03.2010 11:03
kermit

Цитата:
подскажите, как из скрипта отформатировать переносной диск в NTFS?
Виндовый родной format задает много вопросов, отключить которые не получается

К примеру, так:

Код:
echo.|format U: /v:"" /x
Автор: ADMINOVI4OK
Дата сообщения: 11.03.2010 13:27
народ помогите пжл.!!!
нужно сделать *.bat и *.cmd (для 98 и XP) такого "содержания" :
1) чистит папки (темп);
2) проверка диска на наличие ошибок;
3) дефрагментация.
Заранее благодарен за помощь !
забыл сказать : дисков несколько, что бы по окончанию выключался пк!
Автор: kermit
Дата сообщения: 11.03.2010 15:05
Kirillhome

Цитата:

К примеру, так:
echo.|format U: /v:"" /x


не работает:


D:\echo.|format H: /v:"" /x
Тип файловой системы: NTFS.
Введите метку тома для диска H: Указана недопустимая метка диска.


mugil_cephalus
походу да, нельзя в скрипте format использовать

должны же быть альтернативы какие-нибудь?



Добавлено:
ADMINOVI4OK

Цитата:
3) дефрагментация.


все можно, кроме пункта 3
виндовая дефрагментация из командной строки не запускается
можно использовать для этого contig.exe от Руссиновича
Автор: Kirillhome
Дата сообщения: 11.03.2010 15:36
kermit
Ну почему же у меня то [more=работает????]
C:\WINDOWS\system32>label u:
Том в устройстве U: не имеет метки
Серийный номер тома: 7C39-1A9E
Метка тома (11 символов, ENTER - метка не нужна): 123

C:\WINDOWS\system32>label u:
Том в устройстве U: имеет метку 123
Серийный номер тома: 7C39-1A9E
Метка тома (11 символов, ENTER - метка не нужна): 123

C:\WINDOWS\system32>echo.|format U: /FS:FAT32 /v:"" /x
Вставьте новый диск в дисковод U:
и нажмите клавишу ENTER... Тип файловой системы: FAT32.
Проверка: 963 МБ
Инициализируется File Allocation Table (FAT)...
Форматирование окончено.

1 008 803 840 байт всего на диске.
1 008 799 744 байт доступно на диске.

4 096 байт в каждом кластере.
246 289 кластеров на диске.

32 бит в каждой записи FAT.

Серийный номер тома: 2076-0EFF

C:\WINDOWS\system32>echo.|format U: /FS:NTFS /v:"" /x
Вставьте новый диск в дисковод U:
и нажмите клавишу ENTER... Файловая система NTFS не поддерживается на устройствах, оптимизированных для быстрого удаления. Для изменения метода оптимизации откройте вкладку "Политика" в свойствах устройства.

После изменения политики

C:\WINDOWS\system32>echo.|format U: /FS:NTFS /v:"" /x
Вставьте новый диск в дисковод U:
и нажмите клавишу ENTER... Тип файловой системы: FAT32.
Новая файловая система: NTFS.
Проверка: 963 МБ
Создание структур файловой системы.
Форматирование окончено.
987103 КБ всего на диске.
979788 КБ доступно.

C:\WINDOWS\system32>echo.|format U: /FS:NTFS /v:"123" /x
Вставьте новый диск в дисковод U:
и нажмите клавишу ENTER... Тип файловой системы: NTFS.
Проверка: 963 МБ
Создание структур файловой системы.
Форматирование окончено.
987103 КБ всего на диске.
979788 КБ доступно.
[/more]

update:
Кажется, я понял, в чем разница...
Я проверял на USB-Flash, а надо, похоже, смотреть на USB-HDD - вероятно, есть разница обработки команды format в зависимости от типа данных устройств (о чём я сначала не догадался)
Автор: METAJIJI
Дата сообщения: 11.03.2010 17:39
В общем алгоритм работы батника таков:
1. считываем текстовый файл со списком путей до файлов
folder\one\two\file.ext
2. делаем некоторые операции с этим путем
3. скачиваем wget'ом файл с сервера
4. выполняем некоторые операции со скаченным файлом
5. удаляем скаченный файл...

Все бы ничего, но такая проблемка, в бат файле по ходу работы нужно использовать строку вида
folder\one\two\file.ext
это путь к файлу, но вот незадача, wget никак не хочет скачивать, и правильно делает, ведь "слеши неправельные"...
как бы так налету переделать эту строку, чтобы получилось:
folder/one/two/file.ext
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 18:24
METAJIJI

Код: set "var=folder\one\two\file.ext"
set "var=%var:\=/%"
echo %var%
Автор: pandomnik
Дата сообщения: 11.03.2010 19:48
так,с net use я разобрался.Теперь возникла проблема: можно ли как то подключить все имеющиеся сетевые ресурсы?если да,то каким образом? подскажите пожалуйста.

всем спасибо)
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 20:28
ADMINOVI4OK

Цитата:
1) чистит папки (темп);


Код: chcp 1251
for /f "tokens=*" %%a in ('dir /b/s/a-d "%temp%\*.*"') do del /q /a: "%%a"
for /f "tokens=*" %%a in ('dir /b/ad "%temp%"') do rd /s /q "%%a"
pause
Автор: Kirillhome
Дата сообщения: 11.03.2010 20:44
pandomnik
Ты же говоришь, что "разобрался"

[more="Рассуждизмы"]На самом деле - вопрос в том, что ты подразумеваешь под "подключить все имеющиеся сетевые ресурсы".

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

Если подсоединить - подразумевается что-то другое - ну, например, иметь возможность с них копировать информацию - то это можно сделать, к примеру, так:
net use \\Host\Имя_ресурса Пароль /User:Имя_Пользователя
copy \\Host\Имя_ресурса\file.txt c:\

Или - ты хочешь узнать список всех ресурсов?
тогда - команда
net view \\Host
(правда, она не покажет список т.н. "скрытых шар", которые видны на локальном компьютере при выводе команду net share)

Т.е. вопросы в том - что такое "подключить" и что такое "все"[/more]
Автор: claus22
Дата сообщения: 11.03.2010 21:42
возможно ли производить поиск в .txt файле указанной строки с конца файла?

дело в том что размер файла может быть большой, а разыскиваемый текст распологается (ожидается) в самом конце файла и не хочется пролопачивать зазря весь объем
Автор: wolf0425
Дата сообщения: 11.03.2010 22:35
claus22 с конца искать нельзя, но можно довольно быстро отрезать последние n срок командой tail (порт с юникса).
Автор: mugil_cephalus
Дата сообщения: 11.03.2010 23:30
кто-нить желает протестить (на досуге делал себе чистилку Temporary Internet Files для всех юзеров и всех лок. дисков; щас сам ковыряю свой "труд" - смотрю что получилось)

Код: rem @echo off
chcp 1251>nul
taskkill /f /im iexplore.exe
ping -n 21 localhost>nul 2>&1
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call:_1 %%a
pause
goto:eof

:_1
for /f "tokens=*" %%B in ('dir /b/ad "%~1:\Documents and Settings"') do (
echo.f|xcopy "%~1:\Documents and Settings\%%~B\Local Settings\Temporary Internet Files\Content.IE5\desktop.ini" "%~1:\Documents and Settings\%%~B\Local Settings\desktop.ini.%%~B" /h /-y
for /f "tokens=*" %%i in ('dir /b/s/a-d "%~1:\Documents and Settings\%%~B\Local Settings\Temporary Internet Files\Content.IE5"') do (
del /a: /q "%%~i" 1>>"%~dpn0_%~1_%%~B_del.log" 2>&1 &&if not exist "%%~i" 0>nul 1>>"%~dpn0_%~1_%%~B_remlst.txt" 2>&1 set /p="%%~i" &echo.>>"%~dpn0_%~1_%%~B_remlst.txt" 2>&1
)
echo.f|xcopy "%~1:\Documents and Settings\%%~B\Local Settings\desktop.ini.%%~B" "%~1:\Documents and Settings\%%~B\Local Settings\Temporary Internet Files\Content.IE5\desktop.ini" /h /-y
rem check
for /f "tokens=*" %%i in ('dir /b/s/a "%~1:\Documents and Settings\%%~B\Local Settings\Temporary Internet Files\Content.IE5"') do (
0>nul 1>>"%~dpn0_%~1_%%~B_chklst.txt" 2>&1 set /p="%%~i" &echo.>>"%~dpn0_%~1_%%~B_chklst.txt" 2>&1
)
)
goto:eof
Автор: pandomnik
Дата сообщения: 11.03.2010 23:45
ну как сказать,в хелпе ниче сказано,я понимаю если прописать там каждый IP адрес и все тома,то да)но может как то по другому еше можно?

Добавлено:
подразумевалось копировать с них инфу)) спасибо за помощь)))
Автор: king_stiven
Дата сообщения: 12.03.2010 08:07
mugil_cephalus
А там что, засада с атрибутами в Temporary Internet Files? Есть примеры удаления всего в папке без удаления самой папки

PushD c:\temp
if not errorlevel 1 RD /s /q .
PopD

и удаления всех файлов в каталоге и подкаталогах.

del /s /q /f *
с атрибутами можно поигратся

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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