2017-03-21 2 views
1

Ich möchte eine Datei ersetzen, die mit anderen Namen unter Verwendung von VBScript benannt wird. Der Name der Eingabedatei kann Leerzeichen enthalten oder nicht.Ersetzen Sie eine Textdatei, die ein Leerzeichen in Dateiname enthalten kann oder nicht

Set objFSO = CreateObject("Scripting.FileSystemObject") 
' First parameter: original location\file 
' Second parameter: new location\file 
objFSO.CopyFile "D:\Development\abc def.txt", "D:\Development\xyz.txt" 
+0

Möglicherweise verwandt: [Problem mit MoveFile-Methode, Datei in Ziel in VBScript zu überschreiben?] (// stackoverflow.com/a/17065729) – Lankymart

+0

Möglicherweise verwandt: [Kopieren Sie eine Datei von einem Ordner zu einem anderen mit VBScripting] (// stackoverflow.com/q/1260740) – Lankymart

Antwort

2

Vielleicht überraschend CopyFile erstellt eine Kopie der Quelldatei. So benennen Sie eine Datei, die Sie MoveFile verwenden könnten, aber der üblicher Ansatz ist, einfach die name der Datei zu ändern:

Set fso = CreateObject("Scripting.FileSystemobject") 
fso.GetFile("D:\Development\abc def.txt").Name = "xyz.txt" 

Edit: Wenn Sie tatsächlich bedeuten, eine Datei mit einer anderen Datei zu ersetzen, Sie kann dies mit CopyFile tun, indem Sie den dritten Parameter (überschreiben) auf True, wie @Lankymart in den Kommentaren hingewiesen.

fso.CopyFile "D:\Development\abc def.txt", "D:\Development\xyz.txt", True 

Wenn Sie nicht wollen, um die Quelldatei Sie es nach dem Kopiervorgang löschen müssen halten (VBScript nicht erlaubt, eine Datei über eine vorhandene Datei zu bewegen). Alternativ können Sie zuerst die Zieldatei löschen und dann die Quelldatei verschieben oder umbenennen.

+1

Wollen sie das Original behalten und überschreiben, wenn die Zieldatei existiert? Wenn ja, geben Sie einfach "objFSO.CopyFile" D: \ Entwicklung \ abc def.txt "," D: \ Entwicklung \ xyz.txt ", True" an. Die Tatsache, dass die Frage * "Ersetzen" * lautet, würde das nicht nahelegen, würde ich aber auch nicht annehmen. – Lankymart

Verwandte Themen