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

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

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

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


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

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


Здравствуйте, помогите пожалуйста переписать bat файл в vbs
Сам код bat
Код: Выделить весь код
@echo off
Set From="\\192.168.0.21\1$\2"
Set To="C:\3"
Set VerFile="C:\3\11.txt"
If Not Exist %VerFile% If Exist %To% xcopy %From% %To% /s /e /c /h /r /y /q

Отправлено: 14:44, 19-04-2019

 

Ветеран


Contributor


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

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


Код: Выделить весь код
BoxIn = "\\192.168.100.23\Test1\kuku"
BoxOut = "Z:\Soft_Out"
Flag = BoxOut + "\11.txt"

With CreateObject("Scripting.FileSystemObject")
    If Not .FolderExists(BoxOut) Then
        MsgBox "Folder" + vbCrLf + vbCrLf + BoxOut + vbCrLf + vbCrLf + "not found"
        WScript.Quit 2
    End If
    If .FileExists(Flag) Then
        MsgBox "File" + vbCrLf + vbCrLf + Flag + vbCrLf + vbCrLf + "exists."
        WScript.Quit 1
    End If
    .CopyFolder BoxIn, BoxOut, True
End With

MsgBox "OK"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 15:53, 19-04-2019 | #2



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

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


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


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

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


Цитата:
BoxIn = "\\192.168.100.23\Test1\kuku"
BoxOut = "Z:\Soft_Out"
Flag = BoxOut + "\11.txt"

With CreateObject("Scripting.FileSystemObject")
If Not .FolderExists(BoxOut) Then
MsgBox "Folder" + vbCrLf + vbCrLf + BoxOut + vbCrLf + vbCrLf + "not found"
WScript.Quit 2
End If
If .FileExists(Flag) Then
MsgBox "File" + vbCrLf + vbCrLf + Flag + vbCrLf + vbCrLf + "exists."
WScript.Quit 1
End If
.CopyFolder BoxIn, BoxOut, True
End With

MsgBox "OK"

А как можно написать путь чтобы все копировалось в C:\Users\Usersprofile\AppData. Это нужно чтобы можно было обновлять программу на терминальных серверах.

Вот так можно написать путь в BoxOut?
Код: Выделить весь код
C:\Users" & username & "\AppData\

Отправлено: 11:31, 22-04-2019 | #3


Ветеран


Contributor


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

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


Stgean, Попробуйте
Код: Выделить весь код
BoxOut = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%") + "\AppData"
MsgBox BoxOut
Строка MsgBox BoxOut вставлена для отладки, если Вас устроит результат, можете её убить

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 15:08, 22-04-2019 | #4


Ветеран


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

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


Цитата Stgean:
C:\Users\Usersprofile\AppData »
А точнее? Вам в AppData\Local или в AppData\Roaming?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:39, 22-04-2019 | #5


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


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

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


Цитата:
А точнее? Вам в AppData\Local или в AppData\Roaming?
Папка с программой у пользователей лежит в C:\Users\userprofile\AppData\1

Отправлено: 06:16, 23-04-2019 | #6


Ветеран


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

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


Stgean, не должно такого быть. Это какой-то ручной самопал получается. Где, скажем, будет находиться каталог с программой в случае до-Vista ОС?

Отправлено: 07:27, 23-04-2019 | #7


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


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

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


Цитата:
Stgean, не должно такого быть. Это какой-то ручной самопал получается. Где, скажем, будет находиться каталог с программой в случае до-Vista ОС?
По другому и не получится, программа не работает, если ее с одного ярлыка запускать 2 людям. Поэтому, я и принял решение что на сервере хранится эталон на C:\1, у каждого пользователя она лежит в C:\Users\userprofile\AppData\1, много места занимает конечно, но зато у каждого пользователя своя программа. Поэтому мне и необходимо ее обновить, но не знаю как правильно путь указывается на vbs именно до C:\Users\userprofile\AppData\1.

Отправлено: 07:36, 23-04-2019 | #8


Ветеран


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

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


Stgean, Вы меня не поняли. Приложения, устанавливаемые в режиме «на пользователя», должны хранить свои постоянные и временные данные (в том числе и исполняемые файлы) не в корне %UserProfile%/AppData, а на уровень ниже. У нас есть каталог %UserProfile%\AppData, в котором находятся каталоги:
  • Roaming (бывший каталог Application Data из предыдущих версий ОС, нынче в профиле вместо данного каталога имеется связь (junction) Application Data, указывающая на каталог %UserProfile%\AppData\Roaming), переменная окружения, указывающая на данный каталог — %APPDATA%;
  • Local (бывший каталог Local Settings из предыдущих версий ОС, нынче в профиле вместо данного каталога имеется связь (junction) Local Settings, указывающая на каталог %UserProfile%\AppData\Local), переменная окружения, указывающая на данный каталог — %LOCALAPPDATA%;
  • LocalLow — нововведение новых версий ОС, что это такое и для чего нужно — можно почитать по ссылке ниже, нас он в данном случае не интересует.

Исполняемые файлы приложений, устанавливаемых в режиме «на пользователя», как правило, хранятся либо в каталоге %UserProfile%\AppData\Roaming (и перемещаются вместе с профилем пользователя по машинам [в случае использования перемещаемого доменного профиля]), либо в каталоге %UserProfile%\AppData\Local (и не «гуляют» вослед пользователю вместе с его профилем по машинам) в виде %UserProfile%\AppData\Roaming|Local\Название компании\Название приложения. Но никак не в корне каталога %UserProfile%\AppData.

Зачем нужна и где расположена папка AppData в Windows?

Цитата Stgean:
программа не работает, если ее с одного ярлыка запускать 2 людям »
Либо разработка времён Windows 3.1, либо разработчиков надо долго бить подсвечниками клавиатурами.

Отправлено: 23:34, 23-04-2019 | #9


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


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

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


Цитата Iska:
Stgean, Вы меня не поняли. Приложения, устанавливаемые в режиме «на пользователя», должны хранить свои постоянные и временные данные (в том числе и исполняемые файлы) не в корне %UserProfile%/AppData, а на уровень ниже. У нас есть каталог %UserProfile%\AppData, в котором находятся каталоги:
Roaming (бывший каталог Application Data из предыдущих версий ОС, нынче в профиле вместо данного каталога имеется связь (junction) Application Data, указывающая на каталог %UserProfile%\AppData\Roaming), переменная окружения, указывающая на данный каталог — %APPDATA%;
Local (бывший каталог Local Settings из предыдущих версий ОС, нынче в профиле вместо данного каталога имеется связь (junction) Local Settings, указывающая на каталог %UserProfile%\AppData\Local), переменная окружения, указывающая на данный каталог — %LOCALAPPDATA%;
LocalLow — нововведение новых версий ОС, что это такое и для чего нужно — можно почитать по ссылке ниже, нас он в данном случае не интересует.
Исполняемые файлы приложений, устанавливаемых в режиме «на пользователя», как правило, хранятся либо в каталоге %UserProfile%\AppData\Roaming (и перемещаются вместе с профилем пользователя по машинам [в случае использования перемещаемого доменного профиля]), либо в каталоге %UserProfile%\AppData\Local (и не «гуляют» вослед пользователю вместе с его профилем по машинам) в виде %UserProfile%\AppData\Roaming|Local\Название компании\Название приложения. Но никак не в корне каталога %UserProfile%\AppData. »
Видимо вы тоже меня не совсем понимаете))) На обычных компьютерах программа устанавливается в C:\1, тут проблем никаких не возникает, а вот на терминальном сервере уже немного посложнее. Хоть она и ставиться в C:\1, то запускать ее несколько пользователей с одного ярлыка не могут, программа выдает ошибку что файл lock уже якобы занят. Поэтому и пришла мысль положить каждому пользователю кто работает с этой программой в UserProfile\AppData\1. Место конечно немало занимается, но другого решения этой проблемы я не нашел.

В итоге объединил весь код с которым мне помогли и на удивление все работает.

Код: Выделить весь код
BoxIn = "\\192.168.0.21\32$\2"
BoxOut1 = "C:\1"
BoxOutTerm = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%") + "\AppData" + "\1"
Flag1 = BoxOut1 + "\23.txt"
FlagTerm = BoxOutTerm + "\23.txt"
'*************************************************
With CreateObject("Scripting.FileSystemObject")
    If Not .FolderExists(BoxOut1) Then
    WScript.Quit 2
        End If
If Not .FolderExists(BoxOutTerm) Then
    WScript.Quit 2
        End If
    
If .FileExists(Flag1) Then
        End If
    .CopyFolder BoxIn, BoxOut1, True

If .FileExists(FlagTerm) Then
        End If
    .CopyFolder BoxIn, BoxOutTerm, True
        End With

Отправлено: 06:03, 24-04-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование папки с файлами с помощью batника Stgean Скриптовые языки администрирования Windows 6 19-04-2019 12:00
CMD/BAT - Копирование папки с файлами с помощью .bat через GPO Stgean Скриптовые языки администрирования Windows 1 10-04-2019 09:47
Создать zip архив папки с подпапками и файлами без корневой папки blackeangel Программирование в *nix 1 02-02-2017 10:31
CMD/BAT - Копирование из сетевой папки с вводом пользователя и пароля. grom_nv Скриптовые языки администрирования Windows 5 27-05-2016 17:47
CMD/BAT - [решено] Создание и копирование папки с файлами скриптом bat через GPO 2poisonS Скриптовые языки администрирования Windows 7 27-04-2011 18:20




 
Переход