pomoc - premenovanie suboru (vbscript alebo delphi)
-
mspeedo
Light Professional
- Príspevky: 943
- Registrovaný: 15 feb 2005, 14:10
- Bydlisko: Nitra
- Kontaktovať používateľa:
pomoc - premenovanie suboru (vbscript alebo delphi)
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)
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
- Príspevky: 2119
- Registrovaný: 29 júl 2006, 10:30
-
vivaSlovakia
Guru wannabe
- Príspevky: 2119
- Registrovaný: 29 júl 2006, 10:30
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
mspeedo
Light Professional
- Príspevky: 943
- Registrovaný: 15 feb 2005, 14:10
- Bydlisko: Nitra
- Kontaktovať používateľa:
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)
(btw. v total commanderi ti ide aj podstatne rychlejsie ako cez multipremenovaci nastroj)
-
vivaSlovakia
Guru wannabe
- Príspevky: 2119
- Registrovaný: 29 júl 2006, 10:30
ty si pako ? ved v total commanderi vies premenovat hromadnemspeedo 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.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
mspeedo
Light Professional
- Príspevky: 943
- Registrovaný: 15 feb 2005, 14:10
- Bydlisko: Nitra
- Kontaktovať používateľa:
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:
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
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
mspeedo
Light Professional
- Príspevky: 943
- Registrovaný: 15 feb 2005, 14:10
- Bydlisko: Nitra
- Kontaktovať používateľa:
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
//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í