Autor
|
Thema: Pipe-Befehl (1143 mal gelesen)
|
Pro_Blem Ehrenmitglied V.I.P. h.c. Tschechischer Zeichner
Beiträge: 2952 Registriert: 24.07.2006 2000, 2003, 2008 & 2008R2 -Server
|
erstellt am: 23. Apr. 2009 08:20 <-- editieren / zitieren --> Unities abgeben:
|
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002
|
erstellt am: 23. Apr. 2009 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für Pro_Blem
Hallo Pro_Blem, Du kannst mit dem For-Befehl eine Datei Zeile für Zeile abarbeiten. z.B: rem ******************************************************* for /F "tokens=* delims=|" %%i in (C:\temp\Liste.txt) do @call :doit %%i :doit cacls c:\windows\system32\%1 goto :eof rem ******************************************************* Die aktuelle Zeile wird mit %%i an das Unterprogramm :doit übergeben und taucht dort als Parameter %1 auf. Mit den Token lassen sich auch mehrere Parameter erzeugen. Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Pro_Blem Ehrenmitglied V.I.P. h.c. Tschechischer Zeichner
Beiträge: 2952 Registriert: 24.07.2006 2000, 2003, 2008 & 2008R2 -Server
|
erstellt am: 23. Apr. 2009 10:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Roland, Danke und ich hab das Skript mal nach meinem Wissen angepasst und wegen Fehler weiter vereinfacht auf: for /F "tokens=* delims=|" %%i in (C:\RIMM.txt) do @call :doit %%i :doit echo %1 >> echo.txt cacls "c:\windows\system32\%1" /E /G $Domain\$User:C Die Geschichte läuft super mit der Echo-Zeile! Mit der cacls-Zeile passiert aber folgendes, das sich auch in der angehängten echo.txt wiederspiegelt: Der Pfad "c:\windows\system32" wird immer wieder vor dem eigentlichen Dateinamen dupliziert, bie die echo.txt 1,5Mb hat; die Berechtigung wird natürlich nicht geändert ------------------ Richtig Fragen * Nettiquette * alte Suchfunktion * System-Info * Unities * Grundlagen ProE-Konfiguration Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fritsrol Mitglied CAD-Systemingenieur
Beiträge: 143 Registriert: 11.12.2002
|
erstellt am: 23. Apr. 2009 12:11 <-- editieren / zitieren --> Unities abgeben: Nur für Pro_Blem
Hallo Pro_Blem, mit folgenden Code funktioniert es bei mir falls die Datei 1.txt in jeder Zeile nur den EXE Namen aufweist. Auch die Echo.txt sieht gut aus. Achtung ich mache natürlich keine Änderungen bei meinen Dateien und bei delims habe ich das Trennzeichnen | entfernt. --------------------------------------------------------------------- for /F "tokens=* delims=" %%i in (C:\1.txt) do @call :doit %%i pause goto :eof :doit echo %1 >> echo.txt echo "c:\windows\system32\%1" /E /G $Domain\$User:C goto :eof -------------------------------------------------------- Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Pro_Blem Ehrenmitglied V.I.P. h.c. Tschechischer Zeichner
Beiträge: 2952 Registriert: 24.07.2006 2000, 2003, 2008 & 2008R2 -Server
|
erstellt am: 23. Apr. 2009 12:42 <-- editieren / zitieren --> Unities abgeben:
|