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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] Чтение и запись в файл

Новый участник


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

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


Добрый день!


Не могу понять как реализовать порядковую нумерацию создаваемых архивов. Например существует 2 папки 1 и 2. При запуске скрипта, проверяется наличие файлов сначала в папке 1 (если есть, то закручивается архив с именем опр. маски), затем наличие файлов в папке 2 (если есть закручивается архив с именем опр. маски). Нужно чтобы в имени создаваемых архивов помимо маски добавлялась порядковая нумерация начиная с 01 (маска имени архива берется по маске имени закручиваемого файла). Т.е. если при первом запуске при наличии файлов в обеих папках закрутилось два архива (например: *01.arj, *02.arj), то при повторном запуске скрипта при наличии файлов хотя бы в одной папке образовался архив с именем *03.arj (порядковая нумерация идет в течении дня, на след. день архивы снова должны нумероваться с 01). Пока есть идея создать какой нибудь текстовичок, в кот. бы велась запись порядковых номеров, но не совсем понятно как прочитать последнюю строку этого текстовичка. Может быть есть еще какие то способы?
Спасибо!

Вот что пока написала:


iDir1 = "D:\test\1"
iDir2 = "D:\test\2"

Maska = "SBC........._............_................_...\.txt$"

ForReading = 1
rem---------------------------------------------------------------
rem Проверяем сущестование директорий

rem ---Проверяем сущестование D:\test\1---
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(iDir1) Then
Set objFolder = objFSO.GetFolder(iDir1)

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
set Files = FSO.GetFolder(iDir1).Files

Set Re = New RegExp
Re.Pattern = Maska
Re.IgnoreCase = True
Set WshShell = CreateObject("WScript.Shell")

For Each File In Files

If Re.Test(File.Name) Then
str1="A"&Mid(File.Name,8,5)&Mid(File.Name,20,6)
WshShell.Run ("""C:\Program Files\7-Zip\7z""a -tzip """+iDir1+"\"+str1+".arj"" -r """+iDir1+"\*.txt""")


end if
next
Else
Wscript.Echo "Не найдена директория D:\test\1"
End If



rem ---Проверяем сущестование D:\test\2---
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
If objFSO1.FolderExists(iDir2) Then
Set objFolder1 = objFSO1.GetFolder(iDir2)
Set FSO1 = WScript.CreateObject("Scripting.FileSystemObject")
set Files1 = FSO1.GetFolder(iDir2).Files

Set Re = New RegExp
Re.Pattern = Maska
Re.IgnoreCase = True
Set WshShell = CreateObject("WScript.Shell")

For Each File1 In Files1
If Re.Test(File1.Name) Then
str2="C"&Mid(File1.Name,8,5)&Mid(File1.Name,20,6)
WshShell.Run ("""C:\Program Files\7-Zip\7z""a -tzip """+iDir2+"\"+str2+".arj"" -r """+iDir2+"\*.txt""")

end if
next
Else
Wscript.Echo "Не найдена директория D:\test\2"
End If

Отправлено: 14:51, 21-07-2011

 

Старожил


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

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


Можно и с текстовичком.
Концепция такая - в том месте, где при создании архива должен выставляться его порядковый номер, вписать предлагаемую функцию.
Код: Выделить весь код
CheckFile = "z:\check.txt"

'пример
archfile = "qwerty_" & SetNumberArchive(CheckFile) & ".arj"

Function SetNumberArchive(f)
  Dim arrCheck
  Dim CountArch
  Dim DateCheck
  Dim objFSO
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(f) Then
      arrCheck = Split(objFSO.OpenTextFile(f).ReadLine, "#", 2)
      DateCheck = arrCheck(0)
      CountArch = arrCheck(1) + 1
    End If
    If Not CDate(DateCheck) = Date Then CountArch = 1
    objFSO.OpenTextFile(f, 2, True).Write Date & "#" & CountArch
    SetNumberArchive = CountArch
End Function
Думаю, разобраться несложно. Функция регистрирует свои запуски в определенную дату.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:56, 23-07-2011 | #2



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

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


Новый участник


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

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


правильно я понимаю функция регистрирует запуски начиная нумерацию с 1?

Отправлено: 11:48, 25-07-2011 | #3


Старожил


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

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


Цитата Dt83:
правильно я понимаю функция регистрирует запуски начиная нумерацию с 1? »
Да.

Отправлено: 13:10, 25-07-2011 | #4


Новый участник


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

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


не могу разобраться чтобы нумерация шла с 01...спасибо!

Отправлено: 13:23, 25-07-2011 | #5


Старожил


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

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


Цитата Dt83:
чтобы нумерация шла с 01 »
Right("0" & SetNumberArchive(CheckFile), 2) - нумерация от 01 до 99
Right("00" & SetNumberArchive(CheckFile), 3) - нумерация от 001 до 999
Ну и т. д.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:14, 25-07-2011 | #6


Новый участник


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

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


Спасибо большое!

Отправлено: 14:29, 25-07-2011 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - NTFS - чтение/запись mitsumoto Общий по FreeBSD 1 09-12-2010 17:02
CMD/BAT - чтение / запись *.txt RUVATA Скриптовые языки администрирования Windows 8 06-08-2010 15:43
.NET - Запись настроек программы в файл txt и чтение этих настроек обратно ProgrammerPC Программирование и базы данных 4 11-12-2009 10:46
Чтение и запись CD-R дисков... GulaG Хочу все знать 25 08-06-2004 20:15
Чтение/запись на разделе Spijon Общий по Linux 8 07-10-2003 20:57




 
Переход