none
Script para mover arquivo de pasta onde o usuário digita um numero de pedido que obrigatoriamente esta no nome do arquivo RRS feed

  • Pergunta

  • Olá , preciso criar um script onde o usuário digita um numero de pedido que obrigatoriamente esta no nome do arquivo , entao com esse numero de pedido achar o arquivo e mover ele para uma determinada pasta na rede.

    é possivel???
    terça-feira, 21 de julho de 2009 17:37

Respostas

  • Olá,

    Verifique o script abaixo:

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

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\pasta\"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "C:\destino\"

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrNome = InputBox("Coloques os numeros de pedido separados por ponto e virgula ; " & _
        vbCrLf & "(Exemplo: 000001;000002;000003 )", ,"" )

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "c:\logdecopia.txt"


    arrNome = split(arrNome,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS MOVIDOS EM: " & now
    objLogFile.WriteLine "==================================================="

    If (objFSO.FolderExists(strPasta) = True) Then
       Set Folder = ObjFSO.GetFolder(strPasta)
       Set MyFiles = Folder.files 
          For Each tipo in arrNome
             For Each MyFiles in Folder.Files
                If instr(myfiles.name,tipo) > 0 Then
                   objFSO.Copyfile strPasta & myfiles.name,strDest,True
                   objLogFile.WriteLine "Arquivo : "  & myfiles.name &  " copiado em : " & Now
                   objFSO.Deletefile strPasta & myfiles.name
                End If
             Next
          Next
    End if

    wscript.quit


    Faça os testes e nos retorne.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Bruno_Renan quarta-feira, 22 de julho de 2009 17:15
    quarta-feira, 22 de julho de 2009 13:56

Todas as Respostas

  • Você pode dar mais detalhes e exemplos disso que vc precisa?

    Duvido que alguém tenha um pronto...

    []s,



    Vinicius Canto Xavier
    Blog sobre scripting: http://viniciuscanto.blogspot.com

    Vinicius Canto MVP Admin Frameworks Blog: http://viniciuscanto.blogspot.com
    quarta-feira, 22 de julho de 2009 00:51
    Moderador
  • Olá,

    Fiz  um script pra você pareceido, só que foi para buscar por data nao foi???

    Faça um teste no script abaixo (O Script que fiz pra você, porém com algumas mudanças.


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

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\pasta\"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "C:\destino\"

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrNome = "teste"

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "c:\logdecopia.txt"


    arrNome = split(arrNome,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS MOVIDOS EM: " & now
    objLogFile.WriteLine "==================================================="

    If (objFSO.FolderExists(strPasta) = True) Then
       Set Folder = ObjFSO.GetFolder(strPasta)
       Set MyFiles = Folder.files  
          For Each tipo in arrNome
             For Each MyFiles in Folder.Files
                If instr(myfiles.name,tipo) > 0 Then
                   objFSO.Copyfile strPasta & myfiles.name,strDest,True
                   objLogFile.WriteLine "Arquivo : "  & myfiles.name &  " copiado em : " & Now
                   objFSO.Deletefile strPasta & myfiles.name
                End If
             Next
          Next
    End if

    wscript.quit



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    quarta-feira, 22 de julho de 2009 02:32
  • O oracle aqui gera um arquivo xml contendo um numero de pedido como nome desse arquivo , tendo varios desses arquivos em uma pasta preciso achar um pedido especifico e após encontra-lo mover esse arquivo .xml para outra pasta.

    Então pensei algo como um prompt para o usuário digitar o número do pedido e a partir dai ele acha e move o arquivo.

    Expliquei melhor?
    quarta-feira, 22 de julho de 2009 12:54
  • Olá Jesiel , o script que você me passou era para mover de acordo com a data de criação .

    Nesse é necessário que o usuário consiga colocar o numero do pedido em algo parecido com o prompt , após isso ele busca esse pedido no nome do arquivo se achar o pedido move o arquivo.
    quarta-feira, 22 de julho de 2009 13:09
  • Olá,

    Verifique o script abaixo:

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

    'Coloque aqui a pasta que será verificada
    strPasta = "c:\pasta\"

    'Coloque aqui a pasta para a qual os arquivos serão copiados (Se quiser copiar, se nao quiser apague essa linha)
    strDest = "C:\destino\"

    'Coloque aqui os tipos de arquivos que serão copiados ou deletados, separados por ";"
    arrNome = InputBox("Coloques os numeros de pedido separados por ponto e virgula ; " & _
        vbCrLf & "(Exemplo: 000001;000002;000003 )", ,"" )

    ' NOME DO ARQUIVO DE LOG
    strLogFile = "c:\logdecopia.txt"


    arrNome = split(arrNome,";")
    Set objLogFile = objFSO.OpenTextFile(strLogFile, 8, True, 0)
    objLogFile.WriteLine  VBCRLF
    objLogFile.WriteLine "==================================================="
    objLogFile.WriteLine "ARQUIVOS MOVIDOS EM: " & now
    objLogFile.WriteLine "==================================================="

    If (objFSO.FolderExists(strPasta) = True) Then
       Set Folder = ObjFSO.GetFolder(strPasta)
       Set MyFiles = Folder.files 
          For Each tipo in arrNome
             For Each MyFiles in Folder.Files
                If instr(myfiles.name,tipo) > 0 Then
                   objFSO.Copyfile strPasta & myfiles.name,strDest,True
                   objLogFile.WriteLine "Arquivo : "  & myfiles.name &  " copiado em : " & Now
                   objFSO.Deletefile strPasta & myfiles.name
                End If
             Next
          Next
    End if

    wscript.quit


    Faça os testes e nos retorne.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Bruno_Renan quarta-feira, 22 de julho de 2009 17:15
    quarta-feira, 22 de julho de 2009 13:56
  • Jesiel esse funcionou exatamente como eu precisava!!!

    Obrigado!!!
    quarta-feira, 22 de julho de 2009 17:15