Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.056
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von BOfH_666

  1. OK, Du benutzt also nicht mein Codebeispiel. Na das erklärt schon ein wenig. Wenn Du meinen Code benutzen wolltest, bräuchtest Du die Logdatei nicht vorher aufwändig zerteilen, sondern könntest sie komplet verfüttern. Dafür müsstest Du allerdings VORHER bei Deinem nächsten Copyjob mit robocopy den Aufruf von robocopy so anpassen, dass robocopy entsprechend große Jobs nicht mehr in GB oder TB angibt, sondern in Bytes. Das hatte ich ja oben shcon beschrieben. .... soviel dazu.

     

    Wenn Du jetzt mit Deinem Code weitermachen möchtest, hast Du verschiedene Möglichkeiten. Eine einfachere wäre z.B., die Zeile einfach an den Leerstellen aufzusplitten und dann einfach das 5. Element auszugeben.  So hier:

    ($logdatei -split "\s+")[4]

     

  2. Du hast das Talent, mich zu verwirren.  ;-) Hattest Du nicht vorhin geschrieben, dass es auch mit Deiner "Logdate" funktioniert? Was wird denn ausgegeben? Bitte immer daran denken, dass wir (ich) Deinen Bildschirm nicht sehen können (kann). Es wäre also hilfreich, zu sehen, welchen Code genau Du benutzt hast, welche Fehlermeldungen Du evtl. bekommen hast und vielleicht welche Ausgabe Du erhalten hast und wie sich diese zur erwarteten Ausgabe unterscheidet.

  3. vor 1 Stunde schrieb Kuddel071089:

    funktioniert mit meiner Logdate auch, aber ich habe keinen Plan, wich das jetzt umgebogen bekomme auf kopierte Bytes. Dafür fehlt mir gerade ein wenig das KnowHow

    ??? Wenn's schon funktioniert, brauchst Du doch nix mehr umbiegen!? Falls doch nicht: Wer hat denn den robocopy-Befehl so eingerichtet, dass er Daten von einem NAS auf's nächste schiebt? Dem sagst Du, er soll als weitere Option an die Kommandozeile ein "/BYTES" anhängen - das wars. Damit würde robocopy nicht mehr "KB" oder "MB" oder "GB" angeben, sondern immer nur Bytes. Und das rechnet der Code immer in "MB" um.  ;-)

  4. OK ... das sieht wirklich nicht nach großem Erfolg aus. ;-)  .... :D  .... aber dafür hast Du ja uns ...  ;-)  ... ich hab grad mal gesucht, ich hatte mal eine Funktion gebaut, die robocopy benutzt, um die Anzahl der Dateien und Unterodner in einem gegebenen Verzeichnis und deren Gesamtgröße ermittelt. Daraus hier dann der SChnipsel um die Werte aus dem Log zu fräsen:

    $logdatei | Where-Object {"$_" -match "(Dateien|Files\s)\:\s+(\d+)\s"} | Out-Null
    $AnzahlDateien = "{0,9:0,0}" -f [INT]$Matches[2]
    
    $logdatei | Where-Object {"$_" -match "(Verzeich\.|Dirs\s)\:\s+(\d+)\s"} | Out-Null
    $AnzahlUnterOrdner = "{0,10:0,0}" -f [INT]$Matches[2]
    
    $Groesse = "{0,12:n2}" -f [math]::Round((($logdatei | Where-Object {$_ -match "Bytes"}).trim().split(" ")[1]) / 1MB , 2)
    #endregion                
    
    #region Erzeugen des Ausgabeobjekts
    [PSCustomObject]@{
        "Subfolders"    = $AnzahlUnterOrdner
        "FileCount"     = $AnzahlDateien
        "Size    (MB)"  = $Groesse
    }

    Probier ob's passt ... es sollte mit deutschem und englishem robocopy log klar kommen

     

    Edit: Achso  ... was ich noch vergessen habe .... wichtig!!!  damit das funktioniert, musst Du robocopy mit dem SChalter /bytes aufrufen!!!!

  5. Ich hab selbst keine Erfahrung damit, aber hast Du mal in die Doku geschaut? Online-Doku: Azure Active Directory. Da steht auch, dass das Modul über die Powershell Gallery verfügbar ist. Es ist also auf einem aktuellen Windows nicht notwendig, erst etwas runterzuladen. Ein einfaches in einer mit erhöhten Rechten gestarteten Powershell-Konsole

    Install-Module -Name MSOnline 

    .. sollte eigentlich genügen.

  6. Du störst nicht - dafür ist das Forum ja da. Wenn ich keinen Spass dran hätte, wär ich nicht mehr hier und würde nicht mehr antworten. ich werd ja nicht gezwungen. ;-):D

     

    Wenn das Script nicht das erwartete Ergebnis liefert, muss man eben rauskriegen, warum nicht.  Gib doch einfach einmal vor der Änderung und einmal nach der Änderung die Eigenschaft als text aus, um die es Dir geht. Also so:

    $fileName ="*.lnk" 
    $folder = "P:\" 
    [string]$from = "\B\Braun\" 
    [string]$to = "\G\Gelb\" 
    $list = Get-ChildItem -Path $folder -Filter $fileName -Recurse  | Where-Object { $_.Attributes -ne "Directory"} | Select-Object -ExpandProperty FullName 
     
    ForEach($lnk in $list) { 
        $obj = New-Object -ComObject WScript.Shell 
        $link = $obj.CreateShortcut($lnk) 
        [string]$path = $link.TargetPath
        Write-Host "Pfad vorher: '$($path)'"
        [string]$path = [string]$path.Replace($from.tostring(),$to.ToString()) 
        Write-Host "Pfad nachher: '$($path)'"
        $link.TargetPath = [string]$path 
        $link.Save() 
    }

     

  7. Ganz schön frech, einfach in einem anderen Forum zu fragen. Soziale Kompetenz ist scheinbar ein knappes Gut heutzutage.

    Bitte formatiere Deinen Code als Code hier im Forum. "... macht nicht, was es soll ... " ist keine valide Fehlerbeschreibung. Wir kennen Dein System nicht und können Deinen Bildschirm nicht shen. Gibt es eine Fehlermeldung? Wenn ja - hier posten, bitte! (idealerweise auch als code formatiert) Wenn es keine Fehlermeldung gibt, woran erkennst Du dass es nicht das tut, was es soll?

  8. OK, dann also ein paar generelle Tipps. Ich würde empfehlen nicht nach Batch oder cmd zu suchen sondern Powershell. Batch / cmd sind ziemlich obsolet und für viele Aufgaben nicht funktionsreich genug. Mit Powershell bist Du viel besser dran. Dann würde ich vermulich auch eher in english suchen. Man bekommt einfach mehr Ergebnisse - also sowas wie "change target of windows *.lnk file". Ich erhalte da schon mit dem erstn Treffer etwas Vielversprechendes.

    Alle Foren, die ich kenne, lassen Dich, ohne dass Du wenigstens einen kleinen Schnipsel eigenen Code lieferst, tendenziell eher wegtreten. ;-)

    Solltest Du das evtl. beruflich benötigen, würde ich Dir dringend empfehlen, die die Grundlagen von Powershell anzueignen. In der Windows-Welt kommt man sowieso nicht mehr drumherum und es schadet nie etwas Neues zu lernen ... auch wenn man es vielleicht seltener braucht.

  9. Hmmm .... das heißt also, dass Du noch nicht woanders danach gesucht hast, oder? Ich hatte den Zweck dieses Forum eher so verstanden, dass man bei konreten Problemen, die man mit einem Script hat, dass man selbst geschreiben hat oder gerade schreibt, fragen kann, wie man diese Probleme beseitigt oder umgeht. Ich habe so etwas bisher noch nie gebraucht und deshalb auch nichts Fertiges da und auch noch nie danach gesucht. Aber ich scripte ganz gern und wenn ich von Dir etwas sehen würde, könnte ich versuchen, es zu verbessern oder debuggen. ;-)  :D

×
×
  • Neu erstellen...