Kopieren mit generiertem Dateinamen

18/04/2011 - 17:12 von ram | Report spam
Wenn man im Windows-Explorer eine Datei »a« markiert und dann
[Strg-C] [Strg-V] tippt, entsteht unter Umstànden so etwas wie:

Kopie (3) von a

Gibt es auch ein Möglichkeit, so etwas auf der Kommandozeile
(in einer Stapeldatei) zu erreichen? Es soll also ein
Kommando wie:

duplicate a

eine Kopie von a anlegen und dabei automatisch einen
Dateinamen für diese Kopie verwenden, der in dem aktuellen
Verzeichnis bisher noch nicht verwendet wurde.

(Notfalls könnte ich so etwas selber programmieren, aber
es wàre schöner, wenn es so etwas schon fertig gàbe.
Am besten natürlich, wenn es bereits Teil von Window wàre.)
 

Lesen sie die antworten

#1 Wolfgang Badura
19/04/2011 - 00:00 | Warnen spam
Hallo Stefan!
"Stefan Ram" wrote in message
news:
Wenn man im Windows-Explorer eine Datei »a« markiert und dann
[Strg-C] [Strg-V] tippt, entsteht unter Umstànden so etwas wie:

Kopie (3) von a

Gibt es auch ein Möglichkeit, so etwas auf der Kommandozeile
(in einer Stapeldatei) zu erreichen? Es soll also ein
Kommando wie:

duplicate a

eine Kopie von a anlegen und dabei automatisch einen
Dateinamen für diese Kopie verwenden, der in dem aktuellen
Verzeichnis bisher noch nicht verwendet wurde.

(Notfalls könnte ich so etwas selber programmieren, aber
es wàre schöner, wenn es so etwas schon fertig gàbe.
Am besten natürlich, wenn es bereits Teil von Window wàre.)



Mir ist ein Command mit der von Dir gewünschten Funktionsweise nicht
bekannt.

Falls Du VB Classic besitzt ist die API

Private Declare Function GetTempFileName Lib "kernel32" _
Alias "GetTempFileNameA" (ByVal lpszPath As String, _
ByVal lpPrefixString As String, ByVal wUnique As _
Long, ByVal lpTempFileName As String) _
As Long

die beste Variante, da Du mit ihr den Ordner für den temporàren File und
zusàtzlich
einen Prefix für den neuen File festlegen kannst:

' Temporàren Filenamen ermitteln
Function CreateTempFile(strPath As String, strPrefix As String) As String
Dim Result&, Buffer$

CreateTempFile = ""
Buffer = String(MAX_PATH, vbNullChar)
' mit GetTempFileName wird ein File mit der Lànge 0 angelegt
Result = GetTempFileName(strPath, strPrefix, 0&, Buffer)
If Result <> 0 Then
CreateTempFile = Left$(Buffer, _
InStr(Buffer, vbNullChar) - 1)
End If
End Function

Mit dem Ergebnis der obigen Funktion kannst Du den Kopiervorgang mit

FileCopy source, destination

ausführen.

Wolfgang

Ähnliche fragen