AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Robocopy und Unicodeverzeichnisse

Ein Thema von Garfield · begonnen am 21. Jul 2007 · letzter Beitrag vom 22. Jul 2007
 
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#1

Robocopy und Unicodeverzeichnisse

  Alt 21. Jul 2007, 13:12
Wie muss ein Robocopy Script gespeichert werden, damit RoboCopy die darin enthaltenen Verzeichnisnamen mit Unicodezeichen erkennt? Bzw wie muss RoboCopy bei Unicode aufgerufen werden?

Es soll ein Verzeichnis mit Robocopy kopiert werden, dessen Name Unicodezeichen enthält bzw enthalten kann. Für Unicode habe ich die TTNTControls verwendet. Enthalten Verzeichnisnamen Unicodezeichen, wird das Script nicht ausgeführt. Zur Kontrolle habe ich die Scripte mit SciTe als Unicode, Unicode Big Enidian und UTF-8 abgespeichert.

Wandle ich den WideString-Verzeichnisnamen über die untenstehende Funktion in Ansizeichen um, funktioniert es. Dies kann jedoch keine Lösung sein.

Delphi-Quellcode:
function WideToAnsi(const ws: WideString): String;
var
  i : Integer;
  j : Integer;
  tmp : String;
  Ebene : Array of WideString;
  SearchRec : TSearchRec;
  gefunden : Boolean;
begin
  j := 0;
  SetLength(Ebene, j + 1);
  Ebene[j] := '';

  for i := 1 to Length(ws) do
  if ws[i] <> '\'
  then
    Ebene[j] := Ebene[j] + ws[i]
  else begin
    inc(j);
    SetLength(Ebene, j + 1);
    Ebene[j] := '';
  end;

  Result := Ebene[0];

  for i := 1 to Length(Ebene) - 1
  do begin
    tmp := Ebene[i];
    if tmp = Ebene[i]
    then begin
      Result := Result + '\' + Ebene[i];
    end
    else begin
      gefunden := False;

      If findfirst(Result + '\*', faAnyFile, SearchRec) = 0
      then begin
        repeat
          if SearchRec.Name = tmp
          then begin
            Result := Result + '\' + Trim(SearchRec.FindData.cAlternateFileName);
            Gefunden := True;
          end;
        until (FindNext(SearchRec) <> 0) or gefunden;
      end;
      FindClose(SearchRec);
    end;
  end;
end;
Aus
Zitat:
L:\συγκρισιν
wird dann zum Beispiel
Zitat:
L:\EC4E~1
Die Commandline wird wie folgt aufgerufen:
Zitat:
RoboCopy /job:scriptname
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz