Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[VBS] wyszukanie / zmiana nazwy pliku

Idź do strony 1, 2, 3, 4  Następny

 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne języki skryptowe, przetwarzanie danych
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robert
Gość





PostWysłany: Pon Sie 21, 2006 9:02 pm  OP    Temat postu: wyszukanie / zmiana nazwy pliku Odpowiedz z cytatem Pisownia

Czesc,
czy moze ktos wie jak zmienic nazwe pliku zawierajacego w nazwie ciag znakow np 123 na np aaa i zapisac go w innym katalogu?

dzieki
Powrót do góry
Marcin_Miga



Dołączył: 09 Lis 2005
Posty: 2575

PostWysłany: Wto Sie 22, 2006 7:53 am      Temat postu: Odpowiedz z cytatem Pisownia

Musisz użyć Replace do zamiany ciągu znaków, oraz Uzyć obiektu Scripting do skopiowania pliku.
Kod:
Dim objSrcipting
Dim strNewFileName
Dim strFileName
Dim strFolder

strFolder = "d:\temp\"
strFileName = "hugo_123.exe"

Set objScripting = CreateObject("Scripting.FileSystemObject")

If objScripting.FileExists(strFolder & strFileName) Then
    strNewFileName = Replace(strFileName, "123", "aaa")
    objScripting.CopyFile strFolder & strFileName, strFolder & strNewFileName, -1
End If

pozdrawiaMM
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Tlen
Robert
Gość





PostWysłany: Wto Sie 22, 2006 6:25 pm  OP(?)    Temat postu: wyszukiwanie / zmiana nazwy pliku Odpowiedz z cytatem Pisownia

Czesc Marcinie,

dzieki za kod, ale chodzilo mi o cos troszeczke innego. Mianowicie w c:\test zapisywane sa pliki o nieznanej nazwie... Skrypt ma znalezc plik ktorego nazwa zawiera 123 (moze to byc np plik asdgaosg123fatgiaer.txt) skopiowac go do katalogu c:\test\kopia pod nazwa np aaa.txt. Jestes w stanie to napisac ?

dzieki za pomoc !!
r[/b]
Powrót do góry
Tomek S



Dołączył: 10 Gru 2005
Posty: 1960

PostWysłany: Wto Sie 22, 2006 9:12 pm      Temat postu: Odpowiedz z cytatem Pisownia

Pokombinuj z ponizszym kodem,poczytaj tez o 'regular expression' aby dobrze podac szukany string.

Kod:
On Error Resume Next

Dim Fso,Folder,Files,FName1,Path,Item,String,NewString

Dir="c:\test\"
Path="c:\test\kopia\"
String="123"
NewString="AAA"

Set RegExp=CreateObject("VBScript.RegExp")
Set Fso=CreateObject("Scripting.FileSystemObject")
Set Folder=Fso.GetFolder(Dir)
Set Files=Folder.Files

RegExp.Global=True
RegExp.Pattern=String
RegExp.IgnoreCase=True

For Each Item in Files
  FName1=Right(Item,Len(Item)-InStrRev(Item,"\"))
  If RegExp.Execute(FName1).Count>0 then
    Fso.CopyFile Item,Path&RegExp.Replace(FName1,NewString),-1
  End If
Next

Set RegExp=Nothing
Set Fso=Nothing
Set Folder=Nothing
Set Files=Nothing


Robert napisał:
...Skrypt ma znalezc plik ktorego nazwa zawiera 123 (moze to byc np plik asdgaosg123fatgiaer.txt) skopiowac go do katalogu c:\test\kopia pod nazwa np aaa.txt...


Wszystko fajnie jezeli istnieje tylko jeden taki plik.W przypadku gdy jest ich wiecej, kazdy kolejny znaleziony bedzie zapisany na ostatnio znalezionym.Jesli o to tobie chodzilo zmien odpowiednie linijki na
Kod:
NewString="AAA.txt"
...
Fso.CopyFile Item,Path&NewString,-1
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Robert
Gość





PostWysłany: Sro Sie 23, 2006 4:47 pm  OP(?)    Temat postu: wyszukanie / zmiana nazwy pliku Odpowiedz z cytatem Pisownia

Czesc Tomku!

dzieki bardzo !!! dokladnie o to mi chodzilo!! sprawiles, ze jestem szczesliwym czlowiekiem :)) hehehe

milego dnia
r
Powrót do góry
raffe



Dołączył: 04 Cze 2008
Posty: 16

PostWysłany: Sro Cze 04, 2008 1:09 pm      Temat postu: Odpowiedz z cytatem Pisownia

Witam,
Przylacze sie do tematu.
Mam pliki o roznych nazwach i roznych rozszerzeniach w jednym folderze np. pry44.567; pry58.043 itd.
Chcialbym aby skrypt wyszukiwal mi w tych plikach czesc tekstu np. "Druk nr." i kopiowal tylko te pliki ktore zawieraja dany tekst do innego folderu.

Dzieki za pomoc
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Tomek S



Dołączył: 10 Gru 2005
Posty: 1960

PostWysłany: Sro Cze 04, 2008 1:49 pm      Temat postu: Odpowiedz z cytatem Pisownia

Zakladam ze mowa o plikach tekstowych.

Kod:
'On Error Resume Next

Dim Fso,Tso,Folder,Files,FName,FolderZ,FolderD,Item,String,Tekst

FolderZ="C:\pry58.043"
FolderD="C:\Folder_Docelowy"
String="Druk nr\."


Set RegExp=CreateObject("VBScript.RegExp")
Set Fso=CreateObject("Scripting.FileSystemObject")
Set Folder=Fso.GetFolder(FolderZ)
Set Files=Folder.Files

RegExp.Global=True
RegExp.IgnoreCase=True

For Each Item in Files
  RegExp.Pattern="\.txt$"
  If RegExp.Test(Right(Item,4)) Then
     ' dla Unicode -> Set Tso=Fso.OpenTextFile(Item,1,,-1)
     Set Tso=Fso.OpenTextFile(Item,1)
     Tekst=Tso.ReadAll
     RegExp.Pattern=String
     If RegExp.Test(Tekst) Then
        FName=Right(Item,Len(Item)-InStrRev(Item,"\"))
        Fso.CopyFile Item,FolderD&"\"&FName,-1
     End If
  End If
Next

Set RegExp=Nothing
Set Fso=Nothing
Set Folder=Nothing
Set Files=Nothing
Set Tso=Nothing
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
raffe



Dołączył: 04 Cze 2008
Posty: 16

PostWysłany: Sro Cze 04, 2008 2:37 pm      Temat postu: Odpowiedz z cytatem Pisownia

Witam,
dzieki za skrypt, ale wystepuje blad:
wiersz 12
znak 1
Nie mozna odnalezc sciezki...
Wszystko mam niby dobrze pustaiwane.

dzieki
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Tomek S



Dołączył: 10 Gru 2005
Posty: 1960

PostWysłany: Sro Cze 04, 2008 2:56 pm      Temat postu: Odpowiedz z cytatem Pisownia

Sprawdz dokladnie czy sciezka w linijce
Kod:
FolderZ="C:\pry58.043"

zawiera poprawna sciezke, czy masz wystarczajace uprawnienia do otworzenia jej.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
raffe



Dołączył: 04 Cze 2008
Posty: 16

PostWysłany: Sro Cze 04, 2008 3:10 pm      Temat postu: Odpowiedz z cytatem Pisownia

ok sprawdze to....
jesli chce zeby przeszukiwal mi wszystkie pliki to czy zamiast :
Kod:
C:\pry58.043

mam uzyc:
Kod:
C:\*.*

?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Inne języki skryptowe, przetwarzanie danych Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2, 3, 4  Następny
Strona 1 z 4

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.15528 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |