---
title: "Får ej små bokstäver med hjälp av VBScript?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/78309-får-ej-små-bokstäver-med-hjälp-av-vbscript"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Dr-man"
published: "2003-05-28T09:42:32.000Z"
updated: "2003-06-04T13:17:41.000Z"
replies: 10
views: 415
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/78309-får-ej-små-bokstäver-med-hjälp-av-vbscript"
---

# Får ej små bokstäver med hjälp av VBScript?

## #1 — Dr-man, 2003-05-28T09:42Z

Jag problem med följande kod.
Med denna kod försöker jag ta en "rename" på en viss mapp och dess undermappar, så att filnamnet får småa bokstäver.

Men jag får följande felmeddelande:
Objekt krävs.: 'Server'

Är det nån som kan hjälpa?

```php
Set objFS = Server.CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strDir) 

For Each File In objFolder.Files 
  'Byt namn 
   strNewFileName = LCase(File.Name) 
   objFS.MoveFile File.Name, strNewFileName 
Next 

Set objFile = Nothing 
Set objFolder = Nothing 
Set objFS = Nothing
```

Permalänk: https://www.webforum.nu/p/78309

## #2 — Engine^, 2003-05-28T10:07Z

Du kan inte flytta en fil till samma plats med MoveFile.

Försök med egenskapen Name istället...

```
'[blue]i loopen[/blue]
File.Name = strNewFileName
```

Permalänk: https://www.webforum.nu/p/1066189

## #3 — @nders, 2003-05-28T10:48Z

Om det är VBScript utan asp, så ska du droppa **Server.**

Permalänk: https://www.webforum.nu/p/1066230

## #4 — Dr-man, 2003-05-30T12:29Z

Jag får fortfarande felmeddelanden!

Felmeddelandet är: Filen finns redan!

```php
strDir = "d:\test2" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strDir) 

For Each File In objFolder.Files 
   strNewFileName = LCase(File.Name) 
   File.Name = strNewFileName
   objFS.MoveFile File.Name, strNewFileName 
Next 

Set objFile = Nothing 
Set objFolder = Nothing 
Set objFS = Nothing
```

Permalänk: https://www.webforum.nu/p/1067600

## #5 — solbulle, 2003-05-30T13:07Z

Du gör ju samma sak!?!

Testa att ta bort raden:

objFS.MoveFile File.Name, strNewFileName 

Annars tror jag du kanske får lov att temporärt döpa/kopiera filerna till ett annat namn o sen tillbaka till det rätta namnet.

Permalänk: https://www.webforum.nu/p/1067637

## #6 — Dr-man, 2003-05-30T17:28Z

Det hjälpte inte att ta bort raden
objFS.MoveFile File.Name, strNewFileName 

Kan nån visa hur man gör eventuellt temporärt döper/kopierar filerna till ett annat namn o sen tillbaka till det rätta namnet?

Permalänk: https://www.webforum.nu/p/1067845

## #7 — Sebbe, 2003-05-31T18:34Z

Du kanske skulle kunna göra så här?

```
strDir = "d:\test2" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strDir) 

For Each File In objFolder.Files 
   objFS.CopyFile "d:\test2\" & File.Name, "d:\test2\" & LCase(File.Name), True
Next 

Set objFile = Nothing 
Set objFolder = Nothing 
Set objFS = Nothing
```

Yeah! 1000 inlägg! :e

Permalänk: https://www.webforum.nu/p/1068450

## #8 — Sebbe, 2003-05-31T18:57Z

Hörde av Solis att min förra kod inte funkar, så jag försöker igen, hoppas att det inte blir samma fel som du har fått innan. :)

```
strDir = "d:\test2" 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strDir) 

For Each File In objFolder.Files
   Set objFile = objFS.GetFile("d:\test2\" & File.Name)
   objFile.Name = LCase(File.Name)
Next
Set objFile = Nothing

Set objFile = Nothing 
Set objFolder = Nothing 
Set objFS = Nothing
```

Permalänk: https://www.webforum.nu/p/1068458

## #9 — Dr-man, 2003-06-04T12:12Z

Jag får det inte ännu heller att fungera!
Felmeddelandet är: Filen finns redan.
Det är på rad 7, som den klagar på.

Permalänk: https://www.webforum.nu/p/1073744

## #10 — Engine^, 2003-06-04T12:47Z

skumt... 

> **MSDN skrev:**
>
> **Name Property**
> Sets or returns the name of a specified file or folder. Read/write.
> 
> object.**Name** \[= *newname*\]
> 
> **Arguments**
>   *object* 
>     Required. Always the name of a File or Folder object. 
>   *newname*
>     Optional. If provided, *newname* is the new name of the specified object.

```
strDir = "d:\test2"

Set fsoFile = CreateObject("Scripting.FileSystemObject")
Set fsoDir = fsoFile.GetFolder(strDir)

For Each objFile In fsoDir.Files
  objFile.Name = LCase(objFile.Name)
Next

Set fsoFile = Nothing
Set fsoDir = Nothing
```

Det borde ju faktiskt fungera. En annan metod är att först kopiera filen och sätta ett nytt namn på den typ *LCase(File.Name) & ".new"*. Sedan tar man bort orginalet med Delete. Sedan kopierar du kopian och sätter namnet till *Left(File.Name, Len(File.Name) - 4)*. Sedan tar man bort första kopian.

Permalänk: https://www.webforum.nu/p/1073774

## #11 — niko, 2003-06-04T13:17Z

Ett förslag på lösning enligt Engine^s och solbulles modell:

```
TemporaryFolder=2

Sub MakeLCase(fld)
	Set objFolder= objFS.GetFolder(fld)
	For Each File In objFolder.Files
		lCaseName=LCase(File.Name)
		if File.Name<> lCaseName then
			tmpName=objFS.GetTempName()
			objFS.CopyFile File.Path, fldTemp & "\" & tmpName, true
			objFS.DeleteFile File, true
			objFS.MoveFile  fldTemp & "\" & tmpName, objFolder.Path & "\" & lCaseName
		end if
	Next
	For Each subFld in objFolder.SubFolders
		MakeLCase subFld.Path
	next
end sub

Set objFS = CreateObject("Scripting.FileSystemObject") 
Set fldTemp= objFS.GetSpecialFolder(TemporaryFolder)
MakeLCase "."
```

Används på egen risk och kan förmodligen behöva justeringar.

Permalänk: https://www.webforum.nu/p/1073802

---

Tråden på webben: https://www.webforum.nu/amne/asp/78309-får-ej-små-bokstäver-med-hjälp-av-vbscript
