Страница: 1 |
Страница: 1 |
Вопрос: vbs: сравнение размера файла
Добавлено: 01.11.10 12:13
Автор вопроса: gadkin
Приветствую.
Вот, изваял скриптик, который по идее должен сравнивать актуальный размер файла с цифрой, записанной в промежуточном файле, и потом выводить результат в другой файл (если актуальный размер больше, то хорошо, т.е. "0", в остальных случаях - "1"). Но скрипт работает некорректно: при явно бОльшем актуальном значении результат записывается как "1". Пробовал сравнивать два файла "налету", т.е. без промежуточных значений из файла - всё ок.
Буду признателен за помощь.
собственно скрипт сравнения
Dim FSO,targetFile,prev_size,actual_size,TextStream,objShell,resultfilesize,filesize,TextStreamfilesize
Const ForReading = 1, TristateUseDefault = -2
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
Set targetFile = FSO.GetFile("C:\temp\targetfile.txt")
actual_size=targetFile.size
set filesize=FSO.GetFile("C:\temp\size.txt") 'в этом файле предыдущее значение размера
set TextStream=filesize.OpenAsTextStream(ForReading, TristateUseDefault)
prev_size=TextStream.ReadLine
TextStream.Close
if actual_size > prev_size Then
objShell.run "cmd.exe /c echo 0 > C:\temp\result.txt", 0, true
else
objShell.run "cmd.exe /c echo 1 > C:\temp\result.txt", 0, true
end if
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 01.11.10 14:27
Учитесь дотнету! там можно сделать подобное задание в пять простых строчек кода
Номер ответа: 2
Автор ответа:
chialexus
ICQ: 321922
Вопросов: 3
Ответов: 53
Web-сайт:
Профиль | | #2
Добавлено: 01.11.10 16:42
gadkin, попробуй так - prev_size=CLng (TextStream.ReadLine)
Номер ответа: 3
Автор ответа:
gadkin
Вопросов: 1
Ответов: 1
Профиль | | #3
Добавлено: 02.11.10 09:23
к сожалению CLng не подошло, т.к. у этой функции ограничение до числа 2147483647, но спасибо за подсказку направления в котором копать использовал функцию Ccur, там ограничение на 5 разрядов больше. Вопрос решён.