webForumDet fria alternativet

File-Rename-Script

7 svar · 262 visningar · startad av Frexuz

FrexuzMedlem sedan maj 2003138 inlägg
#1

scriptet ska ändra namn på filer i bestämd mapp
varje ord ska börja med stor bokstav
alla understreck_ ska replace'as med ett mellanrum
och "rmx" ska replace'as med "Remix"

resten av namnet ska vara som det är =)

SebbeMedlem sedan jan. 20032 285 inlägg
#2

Är det ungefär såhär du menar?

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath("mapp"))

For Each File In objFolder.Files
  arrName = Split(Replace(File.Name, "_", " "))

  For i = 0 To UBound(arrName)
    strName = strName & UCase(Left(arrName(i), 1)) & Mid(arrName(i), 2) & " "
  Next

  strName = Replace("rmx", "Remix")
  File.Name = Trim(strName)
Next

Set objFolder = Nothing : Set objFSO = Nothing
FrexuzMedlem sedan maj 2003138 inlägg
#3

det verkar inte hända så mkt.... sidan laddar o laddar o laddar, men filen ändrar inte namn

har testat både server.mapPath och vanlgit

SebbeMedlem sedan jan. 20032 285 inlägg
#4

Har du Norton Antivirus installerat på datorn?

FrexuzMedlem sedan maj 2003138 inlägg
#5

ja..det var felet med funkar fortfarande inte
har fixat annan kod.....felet:
---------------------------------------
"filen finns redan"
line 45
objFile.Name = strName
---------------------------------------

<html>
<body bgcolor="#999999" text="#000000" leftmargin="5" topmargin="5" marginwidth="0" marginheight="0">
<font face="verdana" size="1"> 
  <%
Function ProperCase(Value)
ProperCase = UCase(Left(Value, 1)) & LCase(Mid(Value, 2))
End Function

  Sub FixNames(Path)

  Dim objFSO
  Dim objFile
  Dim objFolder
Dim strName
  Dim arrName
 Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder("C:\Mp3")
 For Each objFile In objFolder.Files
  orgName = objFile.Name
  strName = objFile.Name
  Response.Write strName & " <font color=""#FFFFFF"">-></font><font color=""#000000""> "
  '**
  '* Ers&auml;tter "rmx" till "Remix"
  '**
  strName = Replace(strName, "rmx", "Remix", vbTextCompare)
  '**
  '* Ers&auml;tter "_" till " "
  '**
  strName = Replace(strName, "_", " ")
  strName = Replace(strName, " - ", "-")
  strName = Replace(strName, "-", " - ")
  
  '**
  '* Formaterar ord
  '**
  arrName = Split(strName)
  For i = 0 To UBound(arrName)
  arrName(i) = ProperCase(arrName(i))
  Next
  
  strName = Join(arrName)
  if orgName = strName then
	response.write ""
  else
	 objFile.Name = strName
  end if
  Response.Write strName & "<BR>" & vbCrLf
  Next
 Response.Write " - Done - <BR>" & vbCrLf
 Set objFolder = Nothing
  Set objFSO = Nothing
End Sub
FixNames("C:\Mp3")
%>
  </font>
</body>
</html>
HulthMedlem sedan juni 2001272 inlägg
#6

Testa med den koden du fick av sebbe.. Den borde fungera..

Och scriptblockering i norton antivirus är farliga saker.

FrexuzMedlem sedan maj 2003138 inlägg
#7

Feltyp:
Körningsfel i Microsoft VBScript (0x800A003A)
Filen finns redan.
/rename/default2.asp, line 13

= File.Name = Trim(strName)

-----------------------------------------------------------

och

strName = Replace("rmx", "Remix")

ska väl vara

strName = Replace(strName, "rmx", "Remix")

?

FrexuzMedlem sedan maj 2003138 inlägg
#8

Lösning: Ändra filens namn till ett temp-namn, och sen till nya.

Hur enkelt som helst var det ju :(

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)