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

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

Автор: Sergey9990
Дата сообщения: 08.05.2007 17:31
Такой вопрос:
В батнике например вызывается

Код:
call java -version 2> tmp
Автор: Elroir
Дата сообщения: 08.05.2007 17:35
Sergey9990

Цитата:
а можно как нибудь перенаправить поток

Нет. Можно перенаправить в файл, а оттуда в переменную или делать разбор с помощью "for /f"

Добавлено:
То есть после команды "java -version 2> tmp", надо запустить "set /p jver=<tmp"
Автор: Maza Faka
Дата сообщения: 09.05.2007 10:21
А где можно скачать MS утилиту "freedisk.exe", поделитесь сцылкой, а то в инете только в составе Resource Kit можно скачать, а я на dial-up-е...
Автор: NIKZZZZ
Дата сообщения: 09.05.2007 10:35
Maza Faka

Цитата:
А где можно скачать MS утилиту "freedisk.exe"

Да например здесь.
Автор: Maza Faka
Дата сообщения: 09.05.2007 13:09
NIKZZZZ
Нет, ты не понял, мне нужна утилита командной строки "freedisk.exe" (входит в состав Windows 2003 Server Resource Kit), а ты мне линк на прогу какую-то дал...
Автор: igor_andreev
Дата сообщения: 09.05.2007 14:31
Maza Faka
Отсюда можно http://www.dynawell.com/support/ResKit/win2k.asp
Автор: Maza Faka
Дата сообщения: 09.05.2007 15:33
igor_andreev
Спасибо, отличный ресурс!
Автор: euheny
Дата сообщения: 10.05.2007 03:39
NIKZZZZ
А что за утиля такая ? у меня в трей садится , а открываться не хочет . Может моя винда слишком худа для неё .
Автор: squxe
Дата сообщения: 10.05.2007 09:57
Может кто-нибудь знает. У меня такая проблема. В bat-файле использую переменную %* как входной параметр для 7-zip (надо сжать все выделенные файлы). Сам bat-файл запускаю через SendTo. Но %* возвращает только первые 255 символов (6-7 файлов максимум).
Автор: slayer120
Дата сообщения: 10.05.2007 10:04
wolf0425
спасибо, все оказалось просто как все гениальное!
А все же на будущее, как сравнивать даты файлов?
Автор: wolf0425
Дата сообщения: 10.05.2007 10:16
Maza Faka, Elroir

Цитата:
Ему надо заменить украинские символы "i" и "ї"на "и" и "йы"
>>а батник - кривой до невозможности
Предложи свой вариант

а получите. совершенно без лишних пересканирований дерева и потенциальных зацикливаний.

Код:
@echo off
setlocal enabledelayedexpansion
chcp 1251 >nul

:recursive
pushd %*
for %%a in (*.*) do echo "%%~a" | find /i /v "i" | find /i /v "ї" >nul || call :rename "%%~a"
for /d %%a in (*.*) do call :recursive "%%~fa" & echo "%%~a" | find /i /v "i" | find /i /v "ї" >nul || call :rename "%%~a"
popd
goto :eof

:rename
set "newname=%~1"
set "newname=%newname:i=и%"
set "newname=%newname:I=И%"
set "newname=%newname:ї=йы%"
set "newname=%newname:Ї=ЙЫ%"

ren "%~1" "%newname%" 2>> %~dpn0.log || echo (%time%) can't rename "%~f1" >> %~dpn0.log
goto :eof
Автор: Smarsh
Дата сообщения: 10.05.2007 11:01
Есть тут у меня пара вопросиков....
1. Есть ли идеи как добраться из командной строки до локальной политики безопасаности...
2. Что гораздо интереснее, как добрать до настройки в св-вах tcp-ip, в дополнительных параметрах до галочки "Зарегистрировать адреса этого подключения в DNS".
Автор: SPV_Ed
Дата сообщения: 10.05.2007 11:22

Цитата:
Есть ли идеи как добраться из командной строки до локальной политики безопасаности

Через Ж - сделать снэпшоты реестра до и после натравливать reg(edit).exe
Автор: Smarsh
Дата сообщения: 10.05.2007 11:26
SPV_Ed
Ну да об этом я уже думал... а утилитки нет ни какой? чтоб пустить её с параметрами?

По поводу вопроса 2... это можно сделать так...

netsh interface ip set dns "Подключение по локальной сети 2" static 192.168.0.1 register=none

Собственно теперь другой вопрос... как мне получить имя активного сетевого подключения?
Автор: wolf0425
Дата сообщения: 10.05.2007 11:31
Smarsh 2. посмотри netsh interface ip set dns ?


Добавлено:

Цитата:
как мне получить имя активного сетевого подключения?

вытащи из netsh interface show interface
Автор: Smarsh
Дата сообщения: 10.05.2007 11:42
wolf0425
Ну я получу список интрефейсов среди которых будет и пара подключение по локальной сети и модемное подключение и впн и черти что .
Может по адресу шлюза отловить?
Автор: demOOnk
Дата сообщения: 10.05.2007 11:45
Извините, поиском не воспользовался.
Задача: устанавливаю переменные окружения через setx. Необходима актуализация.
т.к. до перезагрузки или пока не войдеш в адвансед сеттингс(Win+Pause)->Enviroment variable->Ok они недоступны программам. Хотя в этом же батнике они становятся доступны.
Есть ли варианты по актуализации?
Автор: Smarsh
Дата сообщения: 10.05.2007 11:58
По поводу первого вопроса...
Мне надо в Локальных политиках безопасности изменить параметр "Параметры автоматической подачи заявок"
При его изменении меняеться ключ в реестре такой
HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{ЦИФЕРКИ}Machine\SOFTWARE\Policies\Microsoft\Cryptography\AutoEnrollment\AEPolicy    

И все бы отлично, но на каждом компе {Циферки} разные Что делать теперь не знаю
Автор: KapralBel
Дата сообщения: 10.05.2007 12:03
demOOnk
Пробуй перезагрузить программу, из которой вызывается батник
Автор: Smarsh
Дата сообщения: 10.05.2007 12:37

Цитата:
netsh interface ip set dns "Подключение по локальной сети 2" static 192.168.0.1 register=none

Здесь еще косяк не могу прикруть вторичный dns адресс.
Автор: igor_andreev
Дата сообщения: 10.05.2007 12:57
squxe

Цитата:
Но %* возвращает только первые 255 символов (6-7 файлов максимум).

Можно воспользоваться командой SHIFT /? Она каждому переданному батнику параметру будет каждый раз смещать взад позицию %1. Вроде:


@echo off
if exist %TEMP%\_7z.lst del %TEMP%\_7z.lst

:_make_list
if " %~1" ==" " goto :_make_archive
echo %1>>%TEMP%\_7z.lst
shift
goto :_make_list

:_make_archive
7za a d:\archive.7z @%TEMP%\_7z.lst

Но так тоже много файлов не отправишь, ограничение есть, виндовз ругнется.
Автор: yurkesha
Дата сообщения: 10.05.2007 13:10
Что-то вас уважаемые господа с 7-zip не в ту степь понесло....
Привожу цитату из консольного хелпа:
Цитата:
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
так вот этот самый @listfiles это как раз и есть ссылка на файл содержащий список файлов для сжатия! И он неограничен. Так что пожалуй не стоит изобретать велосипед.
То есть уточню(на всякий случай):
- создаем файл(например) list.txt
- помещаем в него список файлов для сжатия (один файл на одну строку)
- вместо списка файлов в командной строке 7z.exe используем @list.txt
Автор: Gabzya
Дата сообщения: 10.05.2007 13:12
еще раз, есть на диске куча файлов и папок, и вот в некот названиях встречаются эти символы, кот нужно заменить на рускойзычные либо ваще удалить, от этого читаемость на пострадает...
Автор: yurkesha
Дата сообщения: 10.05.2007 13:56
По-моему wolf0425 ответил практически исчерпывающе. Разве что можно внести небольшое уточнение:
Код: ren "%~1" "%newname%" || echo can't rename "%~f1" >> %~dpn0.log
goto :eof
Автор: Maza Faka
Дата сообщения: 10.05.2007 14:05
wolf0425

Цитата:
а получите

Молодец, красиво!
Вот только здесь, ты забыл "echo" убрать, а с ним вызова функции ":rename" для файлов не будет

Код: for %%a in (*.*) do echo "%%~a" | find /i /v "i" | find /i /v "ї" >nul || echo call :rename "%%~a"
Автор: wolf0425
Дата сообщения: 10.05.2007 14:34
Smarsh

Цитата:
netsh interface ip set dns "Подключение по локальной сети 2" static 192.168.0.1 register=none
Здесь еще косяк [Image] не могу прикруть вторичный dns адресс.

следующей строкой
netsh interface ip add dns "Подключение по локальной сети 2" 192.168.0.2
если в конец добавить 1 - 192.168.0.2 станет основным и отодвинет 192.168.0.1 (и остальные)

Добавлено:
Maza Faka

Цитата:
Вот только здесь, ты забыл "echo" убрать,

а, ну да. бывает
Автор: igor_andreev
Дата сообщения: 10.05.2007 14:53
yurkesha

Цитата:
это как раз и есть ссылка на файл содержащий список файлов для сжатия! И он неограничен.
Это мы все знаем Вопрос был - выделить в проводнике необходимые файлы и отправить на батник, лежащий в SendTo. Как тут виндовые ограничения обойти?
Автор: wolf0425
Дата сообщения: 10.05.2007 14:59
yurkesha

Цитата:
duble_ - меняем на любую конструкцию по которой после переименования мы сможем понять что встретилось дублирование и требуется ручное вмешательство...

imho чем лазить по каталогам, искать duble_* и переименовывать их как-то ещё - проще сразу читать cmdname.log со списком непереименованного и плясать от него.

Хотя, для разбора полетов, наверно надо поправить строку на что-то типа

Код: ren "%~1" "%newname%" 2>> %~dpn0.log|| echo ! can't rename "%~f1" >> %~dpn0.log
Автор: Elroir
Дата сообщения: 10.05.2007 15:52
wolf0425

Цитата:
зачем вообще было move.exe привлекать для переименования, если она не помогает как раз в той ситуации когда нужна - кто-то из предшественников пояснит?

Команду "move" для переименования каталогов, я предложил по старой памяти - раньше "ren" могла переименовывать только файлы. Кстати, нет такого файла "move.exe" - сейчас это встроенная команда cmd.
Автор: Smarsh
Дата сообщения: 10.05.2007 15:58
wolf0425
Не понимаю куда в конец по подсовывывал "1 - 192.168.0.2" по всякому. всевремя ошибка...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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