none
Mudar a funcionalidade !!!! RRS feed

  • Pergunta

  • Ba galera na paz.

    Como faço para mudar o script abaixo para quando ele localizar o arquivo, ele renomeie o arquivo para outro nome, sem gravar log, somente localizar e renomear o arquivo para por exemplo autorun.old

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set FSo = CreateObject("Scripting.FileSystemObject")

    Pasta = "C:\"
    strDest = "c:\log.txt"
    arrTipos = "autorun.ini;"
    arrTipos = split(arrTipos,";")

    set folder = FSO.getFolder (Pasta)
    Set ArqLog = FSO.OpenTextFile(strDest, 8, True, 0)
    ArqLog.WriteLine  VBCRLF
    ArqLog.WriteLine "==================================================="
    ArqLog.WriteLine "ARQUIVOS LISTADOS EM: " & now
    ArqLog.WriteLine "==================================================="

    ArqLog.Close
    BuscaArquivo Pasta
    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       BuscaArquivo SubFolder
      next
    end if

    Sub BuscaArquivo(strPasta)
    Set ArqLog = FSO.OpenTextFile(strDest, 8, True, 0)
    Set colFiles = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='" &strPasta& "'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile in colFiles
      For Each tipo in arrTipos
       If objFile.Extension = tipo Then
          Set objArquivo = FSo.GetFile(objFile.Name)
          If objArquivo.Attributes AND 2 Then
             'ArqLog.WriteLine objArquivo.Name
             ArqLog.WriteLine objArquivo.path
          End if
       End If
     Next
    Next

    ArqLog.Close
    End Sub

    quinta-feira, 13 de agosto de 2009 20:30

Respostas

  • Olá,

    Dá uma olhada no script abaixo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set FSo = CreateObject("Scripting.FileSystemObject")

    Pasta = "C:\"
    strArquivo = "teste.txt"


    set folder = FSO.getFolder (Pasta)

    BuscaArquivo Pasta
    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       BuscaArquivo SubFolder
      next
    end if

    Sub BuscaArquivo(strPasta)

    Set colFiles = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='" &strPasta& "'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile in colFiles
       If objFile.FileName & "." & objFIle.Extension = strArquivo Then
          FSO.MoveFile objFile.Name , MID(objFIle.Name,1,Len(objFile.Name)-3) & "old"
       End If
    Next
    End sub




    Talvez tenha uma maneira mais facil de fazer isso. Exemplo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set colFiles = objWMIService.ExecQuery _
        ("Select * from CIM_DataFile where FileName Like '%autorun%'")

    For Each objFile in colFiles
        Wscript.Echo objFile.Name
       objFSO.MoveFile objFile.Name , MID(objFile.Name,1,Len(objFile.Name)-3) & "old"
    Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta Marcelo TI quinta-feira, 13 de agosto de 2009 21:58
    quinta-feira, 13 de agosto de 2009 20:48

Todas as Respostas

  • Olá,

    Dá uma olhada no script abaixo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set FSo = CreateObject("Scripting.FileSystemObject")

    Pasta = "C:\"
    strArquivo = "teste.txt"


    set folder = FSO.getFolder (Pasta)

    BuscaArquivo Pasta
    if folder.Subfolders.count > 0 then
      for each SubFolder in folder.Subfolders
       BuscaArquivo SubFolder
      next
    end if

    Sub BuscaArquivo(strPasta)

    Set colFiles = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='" &strPasta& "'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile in colFiles
       If objFile.FileName & "." & objFIle.Extension = strArquivo Then
          FSO.MoveFile objFile.Name , MID(objFIle.Name,1,Len(objFile.Name)-3) & "old"
       End If
    Next
    End sub




    Talvez tenha uma maneira mais facil de fazer isso. Exemplo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2")
    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set colFiles = objWMIService.ExecQuery _
        ("Select * from CIM_DataFile where FileName Like '%autorun%'")

    For Each objFile in colFiles
        Wscript.Echo objFile.Name
       objFSO.MoveFile objFile.Name , MID(objFile.Name,1,Len(objFile.Name)-3) & "old"
    Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta Marcelo TI quinta-feira, 13 de agosto de 2009 21:58
    quinta-feira, 13 de agosto de 2009 20:48
  • Ba Jesiel

    Que lindo esse que tu mandou, os dois em iram varrer o disco c todo a busca do arquivo e renomear o mesmo para old correto.

    o outro e muito melhor poucas linhas muito bom estou testando.
    quinta-feira, 13 de agosto de 2009 21:16
  • Ba Jesiel

    Show obrigado mais uma vez.
    quinta-feira, 13 de agosto de 2009 21:57
  • Bem galera,

    Estou desenvolvendo um script para meu melhor rendimento na empresa onde trabalho,

    a idéia principal é a seguinte temos mais de 50 maquinas novas para colocar-mos o wallpaper padrão, tanto quando o usuário está logado, quanto quando não está logado, e deixar como padrão um screensaver

           
            Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strComputer &"\root\default:StdRegProv")
               
                'Este trecho coloca o papel de parede quando o usuário está logado
                strValuePath = "Control Panel\Desktop"
                strValueName = "Wallpaper"
                strValue = "C:\WINDOWS\Web\Wallpaper\LIG_on.bmp"
                objReg.SetStringValue HKEY_CURRENT_USER,strValuePath,strValueName,strValue

                strValueNameONWS = "WallpaperStyle"
                strValueONWS = "2"
                objReg.SetStringValue HKEY_CURRENT_USER,strValuePath,strValueNameONWS,strValueONWS
               
                'Este trecho coloca o papel de parede quando o usuário não está logado
                strKeyPathOFF = "DEFAULT\Control Panel\Desktop"
                strValueNameOFF = "Wallpaper"
                strValueOFF = "C:\WINDOWS\Web\Wallpaper\LIG_off.bmp"
                objReg.SetStringValue HKEY_USER,strKeyPathOFF,strValueNameOFF,strValueOFF
               
                'Este trecho coloca o screensaver como padrão
                KeyPath = ".DEFAULT\Software\Microsoft\ScreenSavers\Flying Objects"
                objReg.CreateKey HKEY_USER, KeyPath

                strKeyPathscr = ".DEFAULT\Software\Microsoft\Screensavers\Flying Objects"
                strValueNamescr = "Texture"
                strValuescr = "C:\WINDOWS\Web\Wallpaper\LIG_scr.bmp"
                objReg.SetStringValue HKEY_USER,strKeyPathscr,strValueNamescr,strValuescr


    porém o que eu notei que quando rodo este com meu usuário ele efetua a primeira alteração e falta ele executar a parte do wallpaper in logoff e do screensaver.
    terça-feira, 10 de novembro de 2009 21:58