scriptet ska ändra namn på filer i bestämd mapp <% Testa med: Har du kollat källkoden på resultatet: "källa" under "visa" menyn i Internet Explorer? kommer aldrig så långt så att den visar nått.... väntat i 5 hela minuter... har inte ens blivit timeout Antivirusprogram brukar vala skurken i dess draman. Det spärrar FSO för att inte någon vb virus skall använda dessa, därmed även ASP. såja, tog bort script block på norton.......... alltså, själva rename'en fungerar om filen tex har ett understreck_ i namnet. men om filen redan har rätt "formatering" förutom rätt case så fungerar det inte, och det står att filen redan finns Ursäkta mig. MEn varför tog du bort kommatecknen? De har en funktion! strName = Replace(strName, "rmx", "Remix", 1, -1, vbTextCompare) Lösning: Ändra filens namn till ett temp-namn, och sen till nya.File-Rename-Script
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 =)Sv: File-Rename-Script
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Inetpub\wwwroot\rename\test\")
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
response.write "Done."
Set objFolder = Nothing : Set objFSO = Nothing
%>
hittade denna koden, men sidan bara laddar o laddar. Filen ändrar inte namn.
har även testat med server.mapPathSv: File-Rename-Script
<code>
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(Path)
For Each objFile In objFolder.Files
strName = objFile.Name
Response.Write strName & " -> "
'**
'* Ersätter "rmx" till "Remix"
'**
strName = Replace(strName, "rmx", "Remix", , , vbTextCompare)
'**
'* Ersätter "_" till " "
'**
strName = Replace(strName, "_", " ")
'**
'* Formaterar ord
'**
arrName = Split(strName)
For i = 0 To UBound(arrName)
arrName(i) = ProperCase(arrName(i))
Next
strName = Join(arrName)
objFile.Name = strName
Response.Write strName & "<BR>" & vbCrLf
Next
Response.Write " - Done - <BR>" & vbCrLf
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
FixNames Server.MapPath("/rename/test")
</code>Sv: File-Rename-Script
Sv: File-Rename-Script
och efter d fungerar inte min IIS längre... måste starta om den i kontrollpanelen
***********
edit
***********
det verkar som om det är file.system.object som strular
kan inte ens köra vanliga simpla script med fso i koden....... har varit med om det innan :(Sv: File-Rename-Script
Sv: File-Rename-Script
sen ändrade jag
Set objFolder = objFSO.GetFolder(Path)
till
Set objFolder = objFSO.GetFolder(Server.MapPath("/rename/mp3/"))
som var självklart
men nu får jag felet
Inkompatibla typer
/rename/Default.asp, line 20
strName = Replace(strName, "rmx", "Remix", , , vbTextCompare)
som jag nu har ändrat till
strName = Replace(strName, "rmx", "Remix", vbTextCompare)
----------------------------------------------------------------------
men nu får jag felet
Filen finns redan
/rename/Default.asp, line 40
objFile.Name = strName
testade med "On error resume next"
och då kommer detta fram:
Blumchen - Ich bin wieder hier.mp3 ->
efter -> "Här ska komma nya filnamnet men står ingenting fasst filen inte är rätt 'formaterad' "
vad kan va fel?
http://frexuz.dyndns.org/rename/ om du vill seSv: File-Rename-Script
som ni ser körde jag med if fileExist, har oxo provat med strCompare metoden men blir samma där.....Sv: File-Rename-Script
Syntax för replace funktionen, från msdn: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctreplace.asp
Replace(expression, find, replacewith[, start[, count[, compare]]])
<code>
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(Path)
For Each objFile In objFolder.Files
strName = objFile.Name
Response.Write strName
'**
'* Ersätter "rmx" till "Remix"
'**
strName = Replace(strName, "rmx", "Remix", , , vbTextCompare)
'**
'* Ersätter "_" till " "
'**
strName = Replace(strName, "_", " ")
'**
'* Formaterar ord
'**
arrName = Split(strName)
For i = 0 To UBound(arrName)
arrName(i) = ProperCase(arrName(i))
Next
strName = Join(arrName)
If objFile.Name = strName Then
Response.Write " [OK]<BR>" & vbCrLf
Else
objFile.Name = strName
Response.Write " -> " & strName & "<BR>" & vbCrLf
End If
Next
Response.Write " - Done - <BR>" & vbCrLf
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
FixNames Server.MapPath("/rename/mp3/")
</code>Sv: File-Rename-Script
så ska det vara isf
men nu fattar jag inget alltså,, det funkar med vissa filer, och med vissa filer får jag "filen finns redan"-error
så jävla skumtSv: File-Rename-Script
Hur enkelt som helst var det ju :(