Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 04.08.03 08:35
Оценка:
Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?

08.08.03 12:58: Перенесено модератором из 'WIN API' в Прочее. — ХД
08.08.03 13:22: Прицепленно модератором к топику. — _MM_
Re: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 04.08.03 08:43
Оценка: 41 (6) +1
Здравствуйте, Mashutka, Вы писали:

M>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?


for %1 in (*.*) do if %~z1 gtr 1048576 del %1
Re: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Calc Россия  
Дата: 04.08.03 08:43
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?


Ну наверное так же как и под 98
Re[2]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 04.08.03 08:46
Оценка:
Здравствуйте, Calc, Вы писали:

M>>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?


C>Ну наверное так же как и под 98


Под W98 это невозможно без привлечения сторонних утилит.
Re[3]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Calc Россия  
Дата: 04.08.03 09:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Calc, Вы писали:


M>>>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?


C>>Ну наверное так же как и под 98


А>Под W98 это невозможно без привлечения сторонних утилит.


А под энти возможно что ли?
Re[4]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 04.08.03 09:43
Оценка:
Здравствуйте, Calc, Вы писали:

M>>>>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?


А>>Под W98 это невозможно без привлечения сторонних утилит.


C>А под энти возможно что ли?


Угу.
Re: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 06:05
Оценка:
Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?
Пробовала так:
for %1 in (*.*) do if %~z1 gtr 1048576 del %1
Не получается %((
Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 06:13
Оценка:
Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?
Пробовала так:
for %1 in (*.*) do if %~z1 gtr 1048576 del %1
Не получается %((

06.08.03 12:52: Перенесено из 'WIN API'
Re: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 06:16
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?

M>Пробовала так:
M>for %1 in (*.*) do if %~z1 gtr 1048576 del %1
M>Не получается %((

%1 можно использовать с командной строки. А в файле %1 обозначает параметр, и нужно использовать переменную:

for %a in (*.*) do if %~za gtr 1048576 del %a
Re[2]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 06:22
Оценка:
Все равно не работает
Re[3]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 06:26
Оценка:
Пришлось-таки самому все проверить. Замени одиночные проценты двойными.
Re[4]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 06:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Пришлось-таки самому все проверить. Замени одиночные проценты двойными.

Все равно не работает. Может быть потому что ХР
Re[5]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 06:46
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Все равно не работает. Может быть потому что ХР


А ты как вводишь команду? Вписываешь ее в bat-файл и запускаешь его или руками в командную строку?
Re[5]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 06:52
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Все равно не работает. Может быть потому что ХР


Вот мой bat-файл. У меня работает.

@echo off
for %%a in (*.*) do (
    if %%~za gtr 1048576 echo %%a
)
Re[6]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 06:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Mashutka, Вы писали:


M>>Все равно не работает. Может быть потому что ХР


А>А ты как вводишь команду? Вписываешь ее в bat-файл и запускаешь его или руками в командную строку?

в bat и запускаю. Перебираются все файлы но не удаляются и пишет "Синтаксическая ошибка"
Re[6]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 06:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Mashutka, Вы писали:


M>>Все равно не работает. Может быть потому что ХР


А>А ты как вводишь команду? Вписываешь ее в bat-файл и запускаешь его или руками в командную строку?

в bat и запускаю. Перебираются все файлы но не удаляются и пишет "Синтаксическая ошибка"
Re[6]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 07:13
Оценка:
Объясни пожалуйста, что означает ~z (%%~za) и как работает gtr.
очень очень буду благодарна
Re[7]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 07:34
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Объясни пожалуйста, что означает ~z (%%~za) и как работает gtr.

M>очень очень буду благодарна

Всех проще это объяснит команда

for /?
Re[6]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 07:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Mashutka, Вы писали:


M>>Все равно не работает. Может быть потому что ХР


А>Вот мой bat-файл. У меня работает.


А>[code]

А>@echo off
А>for %%a in (*.*) do (
А> if %%~za gtr 1048576 echo %%a
А>)
А>[/code

Почему то без if и gtr работает , а с ними нет
Re[2]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Calc Россия  
Дата: 05.08.03 07:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?

А>Пробовала так:
А>for %1 in (*.*) do if %~z1 gtr 1048576 del %1
А>Не получается %((

Попробуй так:

for %1 in (*.*) do if %~z1 gtr 1048576 del %1 | y

При удалении файла с помощью del тебе задаётся вопрос надо или нет, а | y должно помочь, тоесть сразу ответ да.
Re[3]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Аноним  
Дата: 05.08.03 07:38
Оценка:
Здравствуйте, Calc, Вы писали:

C>for %1 in (*.*) do if %~z1 gtr 1048576 del %1 | y


C>При удалении файла с помощью del тебе задаётся вопрос надо или нет, а | y должно помочь, тоесть сразу ответ да.


Нифига.
Re[4]: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Mashutka  
Дата: 05.08.03 07:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Calc, Вы писали:


C>>for %1 in (*.*) do if %~z1 gtr 1048576 del %1 | y


C>>При удалении файла с помощью del тебе задаётся вопрос надо или нет, а | y должно помочь, тоесть сразу ответ да.



без gtr и if работает а сними нет
Re: Мальчики ! Помогите пожалуйста (очень очень нада)
От: Кодт Россия  
Дата: 05.08.03 07:53
Оценка:
Здравствуйте, Mashutka, Вы писали:

M>Как написать под NT bat-файл, чтобы он удалял все файлы из определенного каталога, которые больше 1 Mb?

M>Пробовала так:
M>for %1 in (*.*) do if %~z1 gtr 1048576 del %1
M>Не получается %((

1) Синтаксис for
  • for %a ..... -- в ком.строке
  • for %%a ..... -- в бат.файле

    2) Лексикографическое сравнение строк
    "200" > "1048576"

    Так что увы, через for этот номер не пройдет.
    Почему бы не попробовать написать WSH-скрипт?
  • Перекуём баги на фичи!
    Re[2]: Мальчики ! Помогите пожалуйста (очень очень нада)
    От: Аноним  
    Дата: 05.08.03 07:58
    Оценка:
    Здравствуйте, Кодт, Вы писали:

    К>2) Лексикографическое сравнение строк

    К>"200" > "1048576"

    Не-а. 200 < 1048576. Убедитесь сами.
    Re[3]: Мальчики ! Помогите пожалуйста (очень очень нада)
    От: Кодт Россия  
    Дата: 05.08.03 08:21
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    К>>2) Лексикографическое сравнение строк

    К>>"200" > "1048576"

    А>Не-а. 200 < 1048576. Убедитесь сами.


    Убедился. Сорри.

    Тогда все будет так:
    @echo off
    
    for %%f in (*.*) do if %%~zf gtr 1000000 del %%f

    В таком виде у меня заработало (win 2000).
    Перекуём баги на фичи!
    Re[4]: Мальчики ! Помогите пожалуйста (очень очень нада)
    От: Аноним  
    Дата: 05.08.03 14:39
    Оценка:
    Здравствуйте, Кодт, Вы писали:

    К>
    К>@echo off
    
    К>for %%f in (*.*) do if %%~zf gtr 1000000 del %%f
    К>

    К>В таком виде у меня заработало (win 2000).

    Много потом пришлось восстанавливать?
    Re[5]: Мальчики ! Помогите пожалуйста (очень очень нада)
    От: Кодт Россия  
    Дата: 05.08.03 14:48
    Оценка: :))) :))) :))
    Здравствуйте, Аноним, Вы писали:

    А>Много потом пришлось восстанавливать?

    А тебе?

    Ну я же не враг сам себе — запускал в песочнице.
    А вот наш сисадмин как-то захотел сделать
    del /y /s \\server\disk_c\temp\*.*

    на что получил ответ, мол униформные пути не поддерживаю и поэтому обслужу каталог по умолчанию, а поскольку "/y" — то без базаров счистил c:\winnt на своем компе (за исключением того, что было access denied).
    Перекуём баги на фичи!
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.