pomoc - premenovanie suboru (vbscript alebo delphi)

Programovacie jazyky, rady, poradňa...
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

pomoc - premenovanie suboru (vbscript alebo delphi)

Príspevok od používateľa mspeedo »

Potrebujem nakodit nieco co ked spustim, tak (bez zbytocnych reci) v danom adresari v ktorom sa to spusti najde subor s koncovkou *.avi (alebo mpg napr), zisti nazov toho suboru a premenuje podla neho subor s koncovkou *.srt (ktory tam tiez automaticky najde). Najlepsie pomocou vbscriptu keby sa dalo, ked nie moze byt aj delphi. Ak viete ako na to napiste sem kod pls.
Chcem to na premenovanie titulkov podla nazvu filmu.. v tom adresari bude vzdy len jeden film a jedny titulky.

//edit:
Pre lepsie vysvetlenie. V adresari "C:\video\" mam 2 subory: "movie.avi" a "titulky.srt". Skopirujem do toho adresara ten vbscript, spustim a vysledok bude, ze v adresari budu subory "movie.avi" a "movie.srt" (a samozrejme ten vbscript)
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

to vies spravit aj v total commanderi, ci potrebujes vlastnu tvorbu ?
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa mspeedo »

A ako to spravim v total commanderi? Potrebulem len nieco jednoduche a efektivne.. ze na to kliknem a praca je hotova, nech nemusim spravit uz nic len jeden dvojklik.. viem ze total commander ma nastroj na premenovavanie suborov ale s tym sa treba trochu hrat. Ci sa to tam da aj nejak inak?
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

slac Ctrl + M v total commanderi Multi-premenovaci nastroj

//ale si mu dal :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

jáááj tak s total commanderom sa treba hrať, hej? aj s delphi alebo vb nie? či to nerobíš ty, tak je to v poriadku. Pre tvoju lenivosť s tým niekto zabije 2 hodiny lebo ty to chceš na jeden klik. omg
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa mspeedo »

Dve hodiny? Tak potom sry ze to je nieco take zlozite, chcel som s tym len pomoct lebo sa do toho nevyznam. Som nevedel ze najst nazov suboru s jednou koncovkou a subor s inou premenovat podla neho je tak zdlhave kodenie pre niekoho kto sa v tom vyzna. Mne to bude trvat dva dni ale ked nikto nepomoze tak predstav si ze ja si to spravim a dakujem za kritiku, clovek sa tu uz ani nemoze spytat na pomoc.
(btw. v total commanderi ti ide aj podstatne rychlejsie ako cez multipremenovaci nastroj)
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

mspeedo napísal:Dve hodiny? Tak potom sry ze to je nieco take zlozite, chcel som s tym len pomoct lebo sa do toho nevyznam. Som nevedel ze najst nazov suboru s jednou koncovkou a subor s inou premenovat podla neho je tak zdlhave kodenie pre niekoho kto sa v tom vyzna. Mne to bude trvat dva dni ale ked nikto nepomoze tak predstav si ze ja si to spravim a dakujem za kritiku, clovek sa tu uz ani nemoze spytat na pomoc.
ty si pako ? ved v total commanderi vies premenovat hromadne
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa mspeedo »

Ja som napisal ze chcem nieco hromadne? Len JEDEN video subor a JEDEN subor tituliek v danom adresari kde to sustim. JEDEN JEDINYYY
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Dve hodiny som písal obrazne, myslel som že keď už, tak nech to robíš aj v podadresároch (teda všetky filmy naraz, a nie v každom priečinku osobitne).
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa mspeedo »

Tak pomocou googlu sa mi podarilo pozliepat nejake kody dokopy a funguje to (vbscript), len by som chcel vediet ci sa podmienka If UCase(strTemp) = UCase(strSearchVID1) Then neda zapisat nejako If UCase(strTemp) = UCase(strSearchVID1) ALEBO UCase(strSearchVID2) ALEBO UCase(strSearchVID3) ... Then, aby som nemusel zakazdym pouzit Else If a kopirovat tam niekolko riadkov kodu stale dokola, co sa mi zda neefektivne (ked chcem hladat viacej pripon).
Tu je ten kod:

Kód: Vybrať všetko

Dim objFSO
Dim ofolder
Dim strfolderSearch
Set objFSO = CreateObject("scripting.filesystemobject")
currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
strSearchVID1 = ".avi"
strSearchVID2 = ".mp4"
strSearchSUB = ".srt"
CheckFolder (objFSO.getfolder(currentDirectory)), objStream
 
Sub CheckFolder(objCurrentFolder, objtxtFile)
Dim strTemp
Dim strOutput
Dim objNewFolder
Dim objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFile In objCurrentFolder.Files
strTemp = Right(objFile.Name, 4)
If UCase(strTemp) = UCase(strSearchVID1)  Then
strOutput = CStr(objFile.Name)
parts = split(strOutput, ".")
for i = 0 to ubound(parts) - 1 
    file_name = file_name & parts(i) & "."
next  
file_name = mid(file_name,1, len(file_name)-1)

Else If UCase(strTemp) = UCase(strSearchVID2)  Then
strOutput = CStr(objFile.Name)
parts = split(strOutput, ".")
for i = 0 to ubound(parts) - 1 
    file_name = file_name & parts(i) & "."
next  
file_name = mid(file_name,1, len(file_name)-1)
End If
End If

If UCase(strTemp) = UCase(strSearchSUB)  Then
strOutput2 = CStr(objFile.Name)
End If

Next
For Each objNewFolder In objCurrentFolder.subFolders
CheckFolder objNewFolder, objtxtFile
Next
If objFSO.FileExists (objCurrentFolder + "\" + strOutput2) then
objFSO.MoveFile CStr(objCurrentFolder + "\" + strOutput2) , CStr(objCurrentFolder + "\" + file_name + ".srt")
End If
End Sub
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

áno, ide. Presne tak ako si napísal boldom v svojej správe, ale namiesto Alebo daj Or
mspeedo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 943
Registrovaný: 15 feb 2005, 14:10
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa mspeedo »

Ked tam dam to OR > If UCase(strTemp) = UCase(strSearchVID1) or UCase(strSearchVID2) Then , tak my vyhodi tuto chybu:

//autoeditácia príspevku ( 31 Aug 2008, 11:14 )
Uz to ide, malo to vyzerat takto If UCase(strTemp) = UCase(strSearchVID1) or UCase(strTemp) = UCase(strSearchVID2) Then
Prílohy
Untitled.gif
(10.45 KiB) 424 stiahnutí
Napísať odpoveď