1 (изменено: madjahed, 2015-12-24 20:24:00)

Тема: VBS: Переименовывать каталог и изменять его атрибуты

Появилась необходимость перевести несколько скриптов из формата bat/cmd в vbs/js :
Если в текущей дериктории не существует папка mypapka - она создается, если существует - то выдается запрос на ее переименование в Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E} и ставятся атрибуты скрытый и системный, если существует папка Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E} то запрашивается пароль и при совпадении папка переименовывается в mypapka и снимаются атрибуты скрытый и системный

@echo off
cls
if EXIST "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}" goto UNLOCK
if NOT EXIST MyPapka goto MKDIR

:DANET
cls
echo блокировать папку?
set/p "choise=>"
if %choise%==y goto LOCK
if %choise%==n goto END
goto DANET

:LOCK
ren MyPapka "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}"
attrib +h +s "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}"
if EXIST MyPapka goto READ
if EXIST "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}" goto END

:UNLOCK
cls
echo введите пароль
set/p "varr=>"
if NOT %varr%== 11223344 goto ERROR
attrib -h -s "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}"
ren "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}" MyPapka
if EXIST "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}" goto READ
if EXIST MyPapka goto END

:ERROR
cls
echo неверный пароль
set/p "error=>"
goto UNLOCK

:READ
cls
echo файл занят
pause
goto END

:MKDIR
mkdir MyPapka
cls
echo папка создана
pause
goto END

:END
cls
echo ГОТОВО
pause

Заранее благодарю.

2 (изменено: Flasher, 2015-12-22 06:31:06)

Re: VBS: Переименовывать каталог и изменять его атрибуты

madjahed
Темы с "помогите" не называют.
"VBS: Переименовывать каталог и изменять его атрибуты" - разве так сложно?

Name1 = "mypapka"
Name2 = "Recycle Bin.{645FF040-5081-101B-9F08-00AA002F954E}"
Passw = "1234567"

Title = "Переименовать каталог "
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(Name1) And Not FSO.FolderExists(Name2) Then
  If MsgBox(Title & """" & Name1 & """ в """ & Name2 & _
  """?", 4132, " " & Title) = 6 Then Rename Name1, Name2
ElseIf Not IBox("","") Then Rename Name2, Name1
End If

Function IBox(Text, Pass)
  P = InputBox(Title & """" & Name2 & """ в """ & Name1 & """?" &_
  vbCr & vbCr & Text & vbCr & "Введите пароль:", " " & Title, Pass)
  If P = "" Then WScript.Quit
  If P = Passw Then IBox = 0 Else IBox Space(40) & "Пароль неверен!", P
End Function

Sub Rename(Fold1, Fold2)
  Attr = CreateObject("Shell.Application").NameSpace(FSO._
  GetAbsolutePathName("")).ParseName(Fold1).ExtendedProperty("Attributes")
  H = InStr(Attr, "H") : S = InStr(Attr, "S")
  A = FSO.GetFolder(Fold1).Attributes
  If Fold1 = Name1 Then
    If Not H Then A = A + 2
    If Not S Then A = A + 4
  Else
    If H Then A = A - 2
    If S Then A = A - 4
  End If
  With FSO.GetFolder(Fold1)
    .Name = Fold2 : .Attributes = A
  End With
End Sub

3

Re: VBS: Переименовывать каталог и изменять его атрибуты

Flasher
Спасибо.