Jump to content

ZeroKnowledge

Members
  • Gesamte Inhalte

    59
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von ZeroKnowledge

  1. Customizing the Windows PowerShell Console
  2. Das Trennzeichen darf halt nicht in der Kundennummer, dem Projektnamen und dem Namen der Datei vorkommen. Solange diese Bedingung erfüllt ist, sollte das Skript funktionieren (natürlich dann noch im Skript das neue Trennzeichen eintragen).
  3. @echo off cls set SRC=Sammelverzeichnis set DEST=\\servername\share\folder for /f "tokens=4" %%i in ('dir %SRC% ^| find "__"') do ( for /f "tokens=1-3 delims=_" %%j in ("%%i") do ( REM md %DEST%\%%j 2>nul REM md %DEST%\%%j\%%k 2>nul echo copy %SRC%\%%i %DEST%\%%j\%%k\%%l REM copy %SRC%\%%i %DEST%\%%j\%%k\%%l >nul if %errorlevel% EQU 0 ( echo Datei %%i erfolgreich nach %%j\%%k\%%l kopiert ) else ( echo FEHLER beim Verarbeiten der Datei %%i ) ) ) Die Variablen SRC und DEST musst du noch anpassen. Im Moment gibt das Skript nur aus, was es mit den im Ordner SRC gefundenen Dateien machen würde. Sollte das alles in Ordnung sein, musst du nur die Kommentare in der inneren FOR-Schleife entfernen und die Zeile mit dem echo auskommentieren oder ganz raus schmeißen. Sollen die Dateien nicht kopiert sondern verschoben werden, muss das copy noch durch ein move ersetzt werden. Ein Problem gibts aber noch. Kommt irgendwo im Dateinamen ein einzelner Unterstrich vor, funktioniert das Skript nicht.
  4. setlocal ENABLEDELAYEDEXPANSION for /f "tokens=1-3 delims= " %%i in ('more List.txt') do ( set var1=%%i set var2=%%j set var3=%%k echo !var1! echo !var2! echo !var3! ) Wenn du auf set varX=... verzichten kannst, dann gehts auch so: for /f "tokens=1-3 delims= " %%i in ('more List.txt') do ( echp %%i echp %%j echp %%k )
  5. zu 1.) das sollte mindestens ab 2000 funktionieren (98 hab ich keins zum Testen hier) zu 2.) durch die Pipe | wird die Ausgabe vom ECHO-Befehl an den Aufruf rechts der Pipe weitergegeben. Wenn du chkdsk ein j als Antwort mitteilen willst, einfach echo j | chkdsk... Wenn chkdsk dann auf eine Eingabe wartet, wird die umgeleitete Ausgabe von ECHO als Eingabe verwendet. Damit sparst du dir das gefummel mit einer extra Datei.
  6. zu 1.: SET /P Variable=[EingabeaufforderungZeichenfolge] echo 1) Weiter echo 2) Beenden echo. set /p Ret=Deine Auswahl: If %Ret% == 1 goto _weiter If %Ret% == 2 goto _ende :_weiter :_ende zu 2.: echo <ANTWORT> | <BEFEHL> echo j | copy file1 file2
  7. Möglichkeit 1 (for-"Schleife"): for /f "delims=:" %%i in ('time /t') do set "stunde=%%i" Möglichkeit 2 (if-Abfrage): set stunde3=%time:~-11,2% if %stunde3% LSS 10 set stunde3=0%stunde3:~1,1%
  8. Das Dach-(^)-Zeichen (keine Ahnung wie das richtig heißt) hebt die Sonderfunktion von einem Steuerzeichen auf echo ^<prop oor:name="initials" oor:type="xs:string"^> >test.txt
  9. Dazu musst du in BGInfo eine Customvariable einfügen. - Button 'Custom...' - Button 'New...' - Name für die Variable vergeben - 'WMI Query' auswählen - Button 'Browse' - WMI-Class: 'Win32_OperatingSystem' auswählen - Class Property: 'Description' auswählen Nach einem Klick auf 'Evaluate' sollte jetzt im Feld darunter die Computerbeschreibung erscheinen. Wenn dem so ist, kannst du nach 3x 'OK' deine eben angelegte Variable mit der Beschreibung ins BGInfo-Skript einfügen.
  10. Hab da was bei Google gefunden verwendete Konstanten Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_USERS = &H80000003 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_DYN_DATA = &H80000006 Const COMPUTER = "." Die Funktion Sub DeleteKey(Hive, KeyPath) Dim ValueArray, Value ' Unterschlüssel auflisten objReg.EnumKey Hive, KeyPath, ValueArray If Not IsNull(ValueArray) Then For Each Value In ValueArray ' Rekursion starten DeleteKey Hive, KeyPath + "\" + Value Next End If ' Schlüssel löschen objReg.DeleteKey Hive, KeyPath + "\" + Value End Sub Ein Beispiel Dim KeyPath Dim objReg Set objReg = _ GetObject("winmgmts:\\" &_ COMPUTER & "\root\default:StdRegProv") KeyPath = "Software\WindowsScriptingLernen" DeleteKey HKEY_CURRENT_USER, KeyPath Im Beispiel werden alle Schlüssel unterhalb von "HKEY_CURRENT_USER\Software\WindowsScriptingLernen" gelöscht
  11. Laut VBScript-Handbuch/-Hilfe ist "return" nur bei JScript ein reserviertes Wort. Damit es aber zu keinen Problemen kommt, kannst du für das return auch jede andere Variable hinschreiben. Wie wärs denn z.B. mit ErrorCode (was sogar eher dem Rückgabewert der Methode entspricht als ein "allgemeines" return...)
  12. Ich hab da in der Funktion einen Teil vergessen wieder zu ändern In Zeile 14 sollte es CPUTime = sngProcessTime statt CPUTime = objProcess.Name & vbTab & strProcessOwner & vbTab & sngProcessTime heißen
  13. Die Methode GetOwner() aus der Klasse Win32_Process sollte genau das sein was du suchst. Ich hab deine Funktion mal mit GetOwner() erweitert Function CPUTime(strProcessName, strUserName) strComputer = "." Set objWMIService = GetObject("winmgmts:" & _ "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("SELECT * from Win32_Process") For Each objProcess In colProcesses If LCase(objProcess.Name) = LCase(strProcessName) Then Return = objProcess.GetOwner(strProcessOwner) If Return = 0 Then If LCase(strProcessOwner) = LCase(strUserName) Then sngProcessTime = ( CSng(objProcess.KernelModeTime) + CSng(objProcess.UserModeTime)) / 10000000 CPUTime = objProcess.Name & vbTab & strProcessOwner & vbTab & sngProcessTime Exit Function End If End If End If Next CPUTime = 0 End Function
×
×
  • Neu erstellen...