Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка размера файла

Ответить
Настройки темы
CMD/BAT - [решено] Проверка размера файла
4zz 4zz вне форума

Пользователь


Сообщения: 88
Благодарности: 3

Профиль | Отправить PM | Цитировать


Уважаемые знатоки!
Помогите написать батник по следующим условиям:

1.В папке по адресу C:\Doc\ найти файл «Fora.vek», определить его размер, если он составляет 95800 байт, то переименовать его в «2Fora.vek», а файл «1Fora.vek» из этой же папки переименовать в «Fora.vek», если же его размер 805132 байта, то запускаем программу «Zorro.exe» из этой же директории.

2.Через 50 секунд переименовать файл «Fora.vek» в «1Fora.vek», а файл «2Fora.vek» в «Fora.vek».

3.После завершения программы «Zorro.exe» переименовать файл «Fora.vek» в «2Fora.vek», а файл «1Fora.vek» в «Fora.vek».

Запутано, конечно..

Отправлено: 00:04, 18-08-2011

 

Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


Если я правильно логику понял:
Код: Выделить весь код
@echo off

set "d=C:\Doc\"
set "f=Fora.vek"
set "f1=1Fora.vek"
set "app=Zorro.exe"

pushd "%d%" & call:size "%f%"

:size
if %~z1 equ 95800 (
   ren %1 "2%~1"
   ren "%f1%" %1
   ping -n 51 127.0.0.1>nul
   ren %1 "%f1%"
   ren "2%~1" %1
   exit
) else (
   if %~z1 equ 805132 (start /wait "" %app% & ren %1 "2%~1" & ren "%f1%" %1)
   exit
)

Последний раз редактировалось SendMessage, 18-08-2011 в 01:58. Причина: поправил скрипт

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:51, 18-08-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

4zz 4zz вне форума Автор темы

Пользователь


Сообщения: 88
Благодарности: 3

Профиль | Отправить PM | Цитировать


SendMessage,
Спасибо огромное, все получается, а возможно ли такое уточнение:

1.В папке по адресу C:\Doc\ найти файл «Fora.vek», определить его размер, если он составляет 95800 байт, то переименовать его в «2Fora.vek», а файл «1Fora.vek» из этой же папки переименовать в «Fora.vek», после чего запустить программу «Zorro.exe»
2.Через 50 секунд переименовать файл «Fora.vek» в «1Fora.vek», а файл «2Fora.vek» в «Fora.vek».
3.После завершения программы «Zorro.exe» переименовать файл «Fora.vek» в «2Fora.vek», а файл «1Fora.vek» в «Fora.vek».
4.Если же его размер 805132 байта, то запускаем программу «Zorro.exe» из этой же директории.
5.Через 50 секунд переименовать файл «Fora.vek» в «1Fora.vek», а файл «2Fora.vek» в «Fora.vek».
6.После завершения программы «Zorro.exe» переименовать файл «Fora.vek» в «2Fora.vek», а файл «1Fora.vek» в «Fora.vek».

Здесь наверное сложности с 3 и 6 пунктами..

Отправлено: 08:48, 18-08-2011 | #3


Старожил


Сообщения: 175
Благодарности: 119

Профиль | Отправить PM | Цитировать


4zz, сложность не столько с 3 и 6 пунктами, сколько с круговертью файлов.
Попробуйте так:
Код: Выделить весь код
@echo off

set "d=C:\Doc\"
set "f=Fora.vek"
set "f1=1Fora.vek"
set "f2=2Fora.vek"
set "app=Zorro.exe"
set n=0

pushd "%d%" & call:size "%f%"

:size
if %~z1 equ 95800 (
   (copy %1 "%f2%" /y & copy "%f1%" %1 /y & del "%f1%")>nul
   start "" "%app%"
   goto loop
) else (
   if %~z1 equ 805132 (
      start "" "%app%"
      goto loop
   )
)

exit

:loop
   (
   ping -n 2 127.0.0.1 & set /a n+=1   
   if %n% equ 50 (copy %1 "%f1%" /y & copy "%f2%" %1 /y & del "%f2%")
   tasklist | find /i "%app%" || (copy %1 "%f2%" /y & copy "%f1%" %1 /y & del "%f1%" & exit)
   )>nul
goto loop

Последний раз редактировалось SendMessage, 18-08-2011 в 18:17. Причина: добавил пропущенные кавычки

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 18-08-2011 | #4

4zz 4zz вне форума Автор темы

Пользователь


Сообщения: 88
Благодарности: 3

Профиль | Отправить PM | Цитировать


SendMessage,
Спасибо!!!

А можно коментарии к строкам?

Последний раз редактировалось 4zz, 18-08-2011 в 20:26.


Отправлено: 17:38, 18-08-2011 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка размера файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Изменение размера файла подкачки polecat Скриптовые языки администрирования Windows 6 25-12-2010 06:08
CMD/BAT - Скачивание файла и проверка на отличия от файла на сервере. maslovt Скриптовые языки администрирования Windows 2 08-05-2010 19:54
Ограничение размера файла в папке Delirium Microsoft Windows NT/2000/2003 4 28-10-2009 12:26
mkv+ogg=превышение размера файла. Danilo Видео и аудио: обработка и кодирование 3 20-02-2006 00:21
Уменьшение размера файла *.avi Dimoz33 Видео и аудио: обработка и кодирование 1 14-01-2005 01:02




 
Переход