powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание скрипта с использованием WSH - Windows Script Host на VB laguage
7 сообщений из 7, страница 1 из 1
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39260917
NIXARES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть задача
1) пусть в определенний каталог "TEST" на диск С скопировано файл формата :

binYYMMDDHHmm.DAT - название сплошнoe без точек и пробелов

2) необходимо переместить эти файлы на диск D по пути:

D:\YY\MM\DD\HH\

причем надо проверять если файл назван binYY.DAT то его копировать в папку D:\YY т так далее....
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39260940
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и в чем проблема?
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39261260
NIXARES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что вишло:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub COPY()
    Dim i, oFSO, oFolder, oFile, MyPath, curPath, S, Z
    MyPath = "C:\test"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(MyPath)
    For Each oFile In oFolder.Files
       S = oFile.Name
       curPath = "D:\"
       For i = 1 To InStr(1, S, ".") - 2 Step 2
            Z = Mid(S, i, 2)
            curPath = curPath & "\" & Z
            If Dir(curPath, 16) = "" Then
                 MkDir curPath
            End If
       Next i
       oFile.Move curPath & "\" & S
    Next
    Set oFSO = Nothing
    Set oFolder = Nothing
End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ

только я bіn не учел и у меня вроде цикл бегает по всем папкам пути а должен найти нужную папку и остановится, можете исправить не получается....

исправил For i = 1 To InStr(1, S, ".") - 2 Step 2 на For i = 4 To InStr(1, S) - 2 Step 2 чтобы сразу пропускало bin и читало имя, дальше не получается
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39261498
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NIXARES,
не совсем понятно что значит автор"цикл бегает по всем папкам пути а должен найти нужную папку и остановится"
вот Ваш код, который работает корректно

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub COPY()
    Dim i, oFSO, oFolder, oFile, MyPath, DestPath, curPath, S, Z
    MyPath = "C:\test"
    DestPath = "D:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(MyPath)
    For Each oFile In oFolder.Files
        S = oFile.Name
        curPath = DestPath & Mid(S, 4, 10)
        'проверяем если такая папка
        If Not oFSO.FolderExists(curPath) Then
            curPath = DestPath
            'бежим по иерархии и сохдаём нужную папку
            For i = 4 To InStr(1, S, ".") - 2 Step 2
                Z = Mid(S, i, 2)
                curPath = curPath & "\" & Z
                If Not oFSO.FolderExists(curPath) Then
                    'папки нет, создаём
                    oFSO.CreateFolder curPath
                End If
            Next i
        End If
        oFile.COPY curPath & "\" & S
    Next
    Set oFSO = Nothing
    Set oFolder = Nothing
End Sub
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39261554
NIXARES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть вот в чем я использовал "." как разделитель для считывания части имени, а нужно это делать без нее и мне нужно копировать файлы в таком порядке - если файл назван binYY.DAT то он идет в папку D:\YY ; если файл назван binDD.DAT дет в папку D:\DD,
а если он назван binYYMMDDHHmm.DAT то файл должен быть перемещен в папку что соответствует последней части имени а значит в данном случаи в папку :
D:\mm;

А про цикл, я просто думал что у меня он пробегает все папки D:\YY\MM\DD\YY\mm даже если нашел нужную папку, а должен найти нужную и остановиться, а дальше перебирать другие файлы если такие есть...

Можете написать, у меня никак не выходит довести этот код до конца, на том что скинул и застрял....
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39261592
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NIXARES, подозреваю, что Вы сами что-то не до понимаете или не допонимаю я.
Как
Код: vbnet
1.
2.
binYY.DAT то он идет в папку D:\YY ; если файл назван binDD.DAT дет в папку D:\DD,.... binYYMMDDHHmm.DAT в данном случаи в папку :
D:\mm



если подразумевается, что вместо YY, DD, mm это цифры, то вполне может быть совпадения
bin16.dat
din1606241616.dat
...
Рейтинг: 0 / 0
Создание скрипта с использованием WSH - Windows Script Host на VB laguage
    #39261597
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NIXARES,
для получения имени файла без имени используйте
Код: vbnet
1.
2.
        'получаем имя файла без имени
        SName = oFSO.GetBaseName(oFile.Name)


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub COPY()
    Dim i, oFSO, oFolder, oFile, MyPath, DestPath, curPath, S, Z
    MyPath = "C:\test"
    DestPath = "D:\"
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(MyPath)
    For Each oFile In oFolder.Files
        'получаем имя файла без имени
        S = oFSO.GetBaseName(oFile.Name)
        curPath = DestPath & Right(S, 2)
        'проверяем если такая папка
        If Not oFSO.FolderExists(curPath) Then
            'папки нет, создаём
            oFSO.CreateFolder curPath
        End If
        oFile.COPY curPath & "\" & oFile.Name
    Next
    Set oFSO = Nothing
    Set oFolder = Nothing
End Sub


но что-то мне подсказывает, что это не то, что надо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание скрипта с использованием WSH - Windows Script Host на VB laguage
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]