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

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

Автор: Sjova
Дата сообщения: 07.07.2008 16:20
Народ, НИД ХЕЛП: надо создать на Висте два БАТника для настройки ВЛАН: один должен прописывать в свойствах статический IP, маску подсети, основной шлюз и DNS, а второй должен настраивать ВЛАН на автоматическое получение этих настроек.

ЗЫ: помогите ламеру
Автор: Valdon
Дата сообщения: 07.07.2008 16:43
Чета затупил я.... Нада удалить содержимое папки(файлы и каталоги), например, c:\temp не удаляя самой папки temp, т.е. такой вариант неподходит:
RD /s /q c:\temp\
MD c:\temp
На ум приходит только использовани DIR в связке с FOR, мот есть какоето более простое решение в одну сроку, разумееться без использования сторонних утилит ?
Автор: Lapochka ili Chai
Дата сообщения: 07.07.2008 16:52
Valdon
а чем плохо

del c:\temp\*.*


Добавлено:
или даже лучше

del /q c:\temp\*.*

чтобы от робота не было лишних вопросов

Добавлено:
Joolz


Цитата:
Файл полученный из abc(qwer).txt должен затираться файлом из abc(qwer(фвыа)).txt?


Если сложно дать предупреждение, то ДА, просто молча затереть.
Вообще...смотря какой текст получится -- уж проверить-то "IF EXIST" я смогу и сам.
Автор: Sjova
Дата сообщения: 07.07.2008 17:01
Народ, помогите мне с настройкой WLAN!! Плиииз
Автор: Valdon
Дата сообщения: 07.07.2008 17:53
Lapochka ili Chai, del /q /s /f c:\temp\*.* не удаляет(оставляет пустыми) каталоги внутри temp.
Я ж и грю что на ум приходит только использовние DIR в связке с FOR .....
Автор: Lapochka ili Chai
Дата сообщения: 07.07.2008 18:18
[b]Valdon[/b]
и правда.

Но, с другой стороны, смотрим про команду RMDIR = RD:

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

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

/Q Отключение запроса подтверждения при удалении дерева каталогов
с помощью ключа /S.

Но эта команда (я попробовал) не работает с метасимвовами, т.е. в форме

rmdir /q /s c:\temp\*.*

Неужели и правда перебирать пустые папки циклом FOR, сначала уничтожив файлы командой del /q /s c:\temp\*.* ?
Автор: king_stiven
Дата сообщения: 07.07.2008 19:04
Valdon

Код: PushD c:\temp
if not errorlevel 1 RD /s /q .
PopD
Автор: DeBuck
Дата сообщения: 07.07.2008 19:29

Цитата:
устые папки циклом FOR, сначала уничтожив файлы командой del /q /s c:\tem

Похоже на то...
И меня так:
rem DEL %temp%\* /F /Q
for /D %%f in (%temp%\*) do (RD %%f /S /Q)
Автор: Elroir
Дата сообщения: 07.07.2008 20:20
Sjova

Цитата:
надо создать на Висте два БАТника для настройки ВЛАН: один должен прописывать в свойствах статический IP, маску подсети, основной шлюз и DNS, а второй должен настраивать ВЛАН на автоматическое получение этих настроек.

Не знаю будет ли это работать на Висте - вроде-бы должно.
Настраиваешь (вручную) конфигурацию сети для первого случая, запускаешь команду

Код: netsh dump>first.cfg
Автор: Magniton
Дата сообщения: 07.07.2008 21:44
Доброго времени суток.
Возможно ли на CMD реализовать не простое удаление файлов , а полное ("затирание" нулями и единицами) ?
Спасибо!
Автор: Elroir
Дата сообщения: 07.07.2008 23:10
Magniton
Только с помощью сторонних спец. утилит.
Автор: SAOPP
Дата сообщения: 08.07.2008 07:41

Код: [no]netsh interface ipv4 set address "Подключение по локальной сети" static 192.168.0.1 255.255.255.0 192.168.0.2 0
netsh interface ipv4 set dnsserver "Подключение по локальной сети" static 192.168.0.3
netsh interface ipv4 add dnsserver "Подключение по локальной сети" 192.168.0.4 index=2[/no]
Автор: Valdon
Дата сообщения: 08.07.2008 08:55
Elroir,
Цитата:
Тут столько раз обсуждалась проблема удаления содержимого каталога...
Если не секрет, какой Вы способ используете?
ЗЫ: Если есть какойто простейший способ, может его в шапку забросить т.к. вопрос весма актуален и часто обсуждаем... ?
Автор: Elroir
Дата сообщения: 08.07.2008 09:10
SAOPP

Цитата:
Ребят, что-то не разобрался, как к этому интерфейсу ещё добавить дополнительный ip адрес + его маску?


Код:
netsh interface ipv4 add address "Подключение по локальной сети" 10.20.30.40 255.255.255.0
Автор: SAOPP
Дата сообщения: 08.07.2008 09:24
Elroir
Спасибо, как-то не туда смотрел... всё про субинтерфейс думал.
Автор: Elroir
Дата сообщения: 08.07.2008 09:27
Добавил в шапку, в раздел "Работа с текстом, датой и файлами", пункт "Удаление всего содержимого каталога, включая подкаталоги, командой rd (не удаляя сам каталог)"
Автор: 01MDM
Дата сообщения: 08.07.2008 11:17
Magniton

Цитата:
Возможно ли на CMD реализовать не простое удаление файлов , а полное ("затирание" нулями и единицами) ?
Спасибо!


Не знаю насколько действенно, но простое обнуление файла и его удаление дало положительный результат, файл не был найден вообще (при помощи Recuva)


Код:
cd.>test.mp3
del test.mp3
Автор: pandafs2
Дата сообщения: 08.07.2008 11:35
Valdon

Цитата:
ЗЫ: Если есть какойто простейший способ, может его в шапку забросить т.к. вопрос весма актуален и часто обсуждаем... ?

простейший способ - rmdir %папка% /s /q
если вы в этом каталоге - rmdir . /s /q после чего cd .. и rmdir %папка%


Добавлено:
Magniton

Цитата:
Доброго времени суток.
Возможно ли на CMD реализовать не простое удаление файлов , а полное ("затирание" нулями и единицами) ?
Спасибо!

SDelete проще http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx
Автор: Dantis
Дата сообщения: 09.07.2008 00:32
Привет всем.

Кто знает почему может не выполняться команда.

schtasks /create /ru Dantis /rp YourPassword /sc daily /tn Reboot /st 01:18:00 /tr "shutdown /r /t 30"


?????
P.S.
Задачу он создает, но в заданное время не перезапускаться...в *Назначенных задачах* пишет что запуск не удолся.


P.S.S.


а когда пытась редоктировать задание в ручную, то мне пишит что то типа *Ошибка установить учетные сведения здания* и *У вас нет прав для этого.


P.S.S.S.

Реньше все ок работало =)
Автор: mike345S
Дата сообщения: 09.07.2008 10:18
Не получается создать задание на удаленном компе. Домена нет.

schtasks /create /S comp /U sysop /P pass_sysop /RU admin /RP pass_admin /SC onstart /TN upg /TR c:\_upd\upd.cmd
ПРЕДУПРЕЖДЕНИЕ. Запланированная задача "upg" была создана, однако не может выполняться, так как не удалось задать сведения об учетной записи.

При перезагрузке или попытке выполнить задание вручную - запуск не удался

Оба пользователя в группе администраторы. Менял их местами, делал одинаковыми - результат тотже.
Причем, если создавать так:
schtasks /create /S comp /U sysop /P pass_sysop /RU sysop /RP pass_sysop /SC onstart /TN upg /TR c:\_upd\upd.cmd
и посмотреть в назначенных заданиях от кого стоит выполнение, то там указано comp\admin (это переименованная запись "Администратор")
Что делать? Кто нибудь сталкивался?
Автор: Joolz
Дата сообщения: 09.07.2008 13:06
Dantis
Должно все работать. Попробуй Dantis@domain.ru
mike345S
Вместо /U и /P пользуй /RU и /RP.

Добавлено:
Lapochka ili Chai
Что-то типа того.

Код: for /f "delims=\(\) tokens=1,*" %%a in ('dir /b *.txt ^| findstr ".*(.*).*.txt"') do copy %%a(%%b %%a.txt /-Y && del %%a(%%b
Автор: mike345S
Дата сообщения: 09.07.2008 14:52

Цитата:
Вместо /U и /P пользуй /RU и /RP.

Тоже самое. Не работает

schtasks /create /S comp /RU admin /RP password /SC onstart /TN upg /TR c:\_upd\upd.cmd
ПРЕДУПРЕЖДЕНИЕ. Запланированная задача "upg" была создана, однако не может выполняться, так как не удалось задать сведения об учетной записи.
Автор: Joolz
Дата сообщения: 09.07.2008 15:12
mike345S
Такое предупреждение появляется только при несовпадении имени пользователя/пароля.
Автор: Cheerful_a_bear
Дата сообщения: 09.07.2008 16:01
Помогите, не работает такой код.
Спору нет изощряюсь, но не могу добиться желаемого.

xcopy/v /y "f:\Папка\файл.bat" "F:\Другая папка\"
start F:\Другая папка\файл.bat
del/q/f/s "F:\Другая папка\файл.bat"

В программе с таким кодом не получилось указать конкретное место для выполнения.
То есть менял 'dir /b *.*' и на "dir F:\Другая папка\ /b *.*" и так "dir F:\Другая папка\*.* /b "

@echo off
setlocal enabledelayedexpansion
set N=10

call :raschet %date% days_to_today


for /f "tokens=*" %%a in ('dir /b *.*') do (
set filedate=%%~ta
call :raschet !filedate:~0,10! days_to_date_of_file
set /a raznitsa=%days_to_today%-!days_to_date_of_file!
if !raznitsa! gtr %N% echo del /q "%%a"
)
goto :eof

:raschet
for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (

set /a years=%%c*365+%%c/4
set /a prev_year=%%c-1
set /a result_year=%%c/4
set /a result_prev_year=!prev_year!/4
set /a vis=!result_year!-!result_prev_year!
if !vis!==1 (
if %%b==01 set /a years=!years!-1
if %%b==02 set /a years=!years!-1
)

if %%b==01 set months=0
if %%b==02 set months=31
if %%b==03 set months=59
if %%b==04 set months=90
if %%b==05 set months=120
if %%b==06 set months=151
if %%b==07 set months=181
if %%b==08 set months=212
if %%b==09 set months=243
if %%b==10 set months=273
if %%b==11 set months=304
if %%b==12 set months=334

set days=%%a
set firstsym=!days:~0,1!
if !firstsym!==0 set days=!days:~1,1!

set /a %~2=!years!+!months!+!days!
Автор: mike345S
Дата сообщения: 09.07.2008 17:47

Цитата:
Такое предупреждение появляется только при несовпадении имени пользователя/пароля.

локально все хавает, а удаленно - нет.
Из одного и того же bat файла...
Автор: Dantis
Дата сообщения: 09.07.2008 19:28
Joolz


не работает =(
Автор: Elroir
Дата сообщения: 09.07.2008 20:27
Cheerful_a_bear

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

Перед строчкой первого for-а, поставь следующую команду:

Код:
pushd "F:\Другая папка\"
Автор: Cheerful_a_bear
Дата сообщения: 09.07.2008 22:18
Прошу прощения за тупость.
но не понимаю что не так
вот код
[more]
@echo off
setlocal enabledelayedexpansion
set N=10
call :raschet %date% days_to_today

echo PushD "c:\222\"
for /f "tokens=*" %%a in ('dir /b *.*') do (
set filedate=%%~ta
call :raschet !filedate:~0,10! days_to_date_of_file
set /a raznitsa=%days_to_today%-!days_to_date_of_file!
if !raznitsa! gtr %N% echo del /q "%%a"
)
goto :eofф
echo PopD

:raschet
for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
set /a years=%%c*365+%%c/4
set /a prev_year=%%c-1
set /a result_year=%%c/4
set /a result_prev_year=!prev_year!/4
set /a vis=!result_year!-!result_prev_year!
if !vis!==1 (
if %%b==01 set /a years=!years!-1
if %%b==02 set /a years=!years!-1
)
if %%b==01 set months=0
if %%b==02 set months=31
if %%b==03 set months=59
if %%b==04 set months=90
if %%b==05 set months=120
if %%b==06 set months=151
if %%b==07 set months=181
if %%b==08 set months=212
if %%b==09 set months=243
if %%b==10 set months=273
if %%b==11 set months=304
if %%b==12 set months=334
set days=%%a
set firstsym=!days:~0,1!
if !firstsym!==0 set days=!days:~1,1!
set /a %~2=!years!+!months!+!days!
[/more]
однако как только скачаю с этого сайта копипастом и удалю пробелы, как указано в топике, поначалу код работает, а потом просто отказывается, прокручивается и ни сообщений, ни результатов,
В Чем проблема?

Добавлено:
Буква "ф" случайная, ее нет
Автор: Dantis
Дата сообщения: 09.07.2008 22:38
Народ хелп... Какими другими способами можно заставить комп перезапускаться каждые 24 часа???? (можно даже сторонней программой)
Автор: 01MDM
Дата сообщения: 09.07.2008 22:59
Cheerful_a_bear

Цитата:

goto :eofф
echo PopD


Исправь на:

Код:
popd
goto:eof

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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