Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
VBS

Сравнение имени файла с текущем числом месяца

18.04.2017, 10:02. Показов 2421. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане! прошу помощи в написании vbs скрипта.
Есть папка, в которую со стороннего приложения валяться 2 файла формата: ZNH37.txt и ZNH38.txt
Необходимо сделать проверку файла с текущем числом месяца. День месяца - это третий символ имени файла.
то есть, если 1 число месяца - то имя файла будет ZN137.txt, 2 число - ZN237.txt и так до 9.
10 число - это буква A (ZNA37.txt), 11 - буква B(ZNB37.txt) и т.д.
Если результат сверки с текущем числом совпадает, то выдать сообщение, что число и имя файла совпадает, если нет, то вывести, что имя файла и число не совпадает.
По дате создания файла проверять не вариант, так как за определенное число можно выгрузить файлы с разными буквами и цифрами.
Примерно такую же задачу я видел как осуществили на vb.net. вот код решения:
VB.NET
1
2
3
4
5
6
7
8
9
Dim fileName As String = "CVN12506.txt"
Dim ch As Char = fileName(3)
Dim day As Integer = If(AscW(ch)>=49 AndAlso AscW(ch)<=57, AscW(ch)-AscW("0"c), _
        If(AscW(ch)>=65 AndAlso AscW(ch)<=86 Or AscW(ch)>=97 AndAlso AscW(ch)<=118, 9 + AscW(ch) Mod 32, 0))
If day = DateTime.Now.Day Then
    ' Правильное имя
Else
    ' Неправильное имя
End If
Может можно его как-то переделать этот код в vbs скрипт? заранее спасибо за помощь.
Буду благодарен за любые рекомендации и помощь!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2017, 10:02
Ответы с готовыми решениями:

Запуск скрипта от имени системы. Не появляется диалоговое окно в текущем профиле
Знатоки, нужна помощь. У меня мозг кончился. Следующий скрипт прописан в гпо на выполнение при загрузке компьютера. То есть после входа в...

Сравнение имени файла с текущем числом месяца
Есть папка (D:\other\). В нее ежедневно попадают текстовые файлы формата CVN12506.txt 4 символ(цифра или буква) в имени этого файла равна...

Чтение чисел из файла и их сравнение с другим числом
Есть файл с данными типа: Заголовок1 x1 y1/ x2 y2/ ... xN yN/ Заголовок2 x'1 y'1/ ...

7
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.04.2017, 13:58
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim filename, numchar
filename = "QWI123.txt"
numchar = Mid(filename,3,1)
Dim fileday
If IsNumeric(numchar) Then
    fileday = Val(numchar)
Else
    fileday = AscW(numchar) - AscW("A") + 10
End If
MsgBox fileday = Day(Date())
1
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
18.04.2017, 14:31  [ТС]
diadiavova, спасибо большое. а как сделать что бы имя файла мы не указывали, а скрипт брал его с папки сам?

Добавлено через 12 минут
и еще как сделать так, если имя и число совпадает, то выдать сообщение, что верно и запустить батник?
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.04.2017, 15:08
Цитата Сообщение от bd_13 Посмотреть сообщение
а как сделать что бы имя файла мы не указывали, а скрипт брал его с папки сам?
То есть у тебя есть какая-то папка, в ней файлы и надо пройтись по файлам и найти тот, у которого имя содержит нужный день? Я не очень понял задачу, поподробнее опиши.
Цитата Сообщение от bd_13 Посмотреть сообщение
и еще как сделать так, если имя и число совпадает, то выдать сообщение, что верно и запустить батник?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim filename, numchar
filename = "QWI123.txt"
numchar = Mid(filename,3,1)
Dim fileday
If IsNumeric(numchar) Then
    fileday = Val(numchar)
Else
    fileday = AscW(numchar) - AscW("A") + 10
End If
If fileday = Day(Date()) Then
    MsgBox "Sovpadaet"
    CreateObject("WScript.Shell").Run("test.cmd")
End If
0
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
18.04.2017, 15:17  [ТС]
diadiavova, есть папка в нее сваливаются 2 файла из стороннего приложения.
нужно проверить их на совпадение с сегодняшним днем.
Просто что бы имя файла указывать не в коде, а указать только папку, где лежат файлы(там только 2 файла(ZNH37.txt и ZNH38.txt)
При запуске скрипта проверить есть ли в ней файлы, если есть, проверить их имена на совпадение с текущей датой, если дата совпадает, то выдать сообщение, что имена файлов правильные, и запустить батник!
заранее спасибо за вашу неоценимую помощь!!
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.04.2017, 16:30
Лучший ответ Сообщение было отмечено bd_13 как решение

Решение

Цитата Сообщение от bd_13 Посмотреть сообщение
есть папка в нее сваливаются 2 файла из стороннего приложения.
Других файлов в этой папке быть не может?
Цитата Сообщение от bd_13 Посмотреть сообщение
нужно проверить их на совпадение с сегодняшним днем.
Оба должны совпадать или достаточно одного?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim filename, numchar, dirname, folder, fso
 
Function TestName(filename)
    numchar = Mid(filename,3,1)
    Dim fileday
    If IsNumeric(numchar) Then
        fileday = Val(numchar)
    Else
        fileday = AscW(numchar) - AscW("A") + 10
    End If
    TestName = (fileday = Day(Date()))
End Function
dirname = "c:\path\to\files"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(dirname)
Dim nameIsCorrect
nameIsCorrect = true
For Each file In folder.Files
    nameIsCorrect = nameIsCorrect And TestName(file.Name)
Next
If nameIsCorrect Then
    MsgBox "Sovpadaet"
    CreateObject("WScript.Shell").Run("test.cmd")
End If
Здесь проверяются все файлы в директории. Переменной dirname надо передать реальный путь к папке, а аргумент метода Run должен содержать путь к батнику. На предшествующей строке сам напиши, как хочешь выводить сообщение. Если с кодировкой будут проблемы (а у меня они были), то я так думаю, надо смотреть в какой кодировке сохраняешь файл скрипта, у меня это UTF-8 и русские сообщения выводит кракозябрами. Видимо надо сохранять в Windows-1251, ну или тему создай - спроси, я не в курсе)).
1
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
19.04.2017, 09:37  [ТС]
diadiavova, Если в имени файла числа, а не буквы, т.е. от 1 до 9, то выдает ошибку.
ругается на эту строчку:
Visual Basic
1
fileday = Val(numchar)
Миниатюры
Сравнение имени файла с текущем числом месяца  
0
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
19.04.2017, 09:39  [ТС]
разобрался. поменял просто Val на Int и все заработало! спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2017, 09:39
Помогаю со студенческими работами здесь

Сравнение по имени файла к имени файла
Имеется вот такой код при его выполнении я получаю не то что мне нужно. For /R &quot;D:\Users\prox7\Desktop\assets_buildings&quot; %%G...

Как реализовать сравнение по имени файла,а не по его содержимому?
Здравствуйте!Есть код,в котором реализуется поиск объекта в заданной области по маске.В роли маски выступает отдельный файл. Так...

Количество дней в текущем месяца
Срочно нужна ваша помощь! Подскажите пожалуйста, нужен запрос, который бы выводил даты от начала текущего месяца до сегодняшнего дня....

Сравнение месяца в БД и текущего месяца
Всех приветствую. Есть таблица &quot;users&quot;, в которой кроме прочих есть поле &quot;lastVisit&quot; (timestamp). Это поле автоматически...

Как сделать проверку на наличие похожего имени файла и запрос нового имени файла?
При загрузке изображения присваивается имя foto.jpg. Вопрос, как сделать проверку на то что фото с таким именем существует и если он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru