acd2
Goto Top

windows shell befehle aufrufen

hi, ich möchte gerne eine php seite schreiben aus der ich das kommando

del c:\blabla\*.* /S /Q

aufrufen kann

nur ich weis nicht wie das unter windows läuft, also mit dem standard

exec_shell("del c:\blabla\*.* /S /Q");

gehts nicht

hoffe ihr könnt mir helfen

danke

Content-ID: 24175

Url: https://administrator.de/contentid/24175

Ausgedruckt am: 23.11.2024 um 11:11 Uhr

Dani
Dani 24.01.2006 um 17:09:42 Uhr
Goto Top
Also der Befehl heißt shell_exec('del c:\blabla\*.* /S /Q');
ACD2
ACD2 26.01.2006 um 06:47:31 Uhr
Goto Top
kann es sein dass das mit variablen nicht geht?

also

shell_exec('del "D:\daten\home\$beruf\$jahr\*.*" /S /Q');

??
Dani
Dani 26.01.2006 um 07:42:47 Uhr
Goto Top
Dann probiers doch einfach mal ohne Vari's.
ACD2
ACD2 26.01.2006 um 10:23:19 Uhr
Goto Top
ja, das hab ich nicht mit dazu geschrieben, ohne variablen gehts, ich brauch den befehel aber mit variablen

also, ich zeig dir mal meinen quelltext:

<?php
$beruf = $HTTP_POST_VARS["beruf"];
$jahr = $HTTP_POST_VARS["jahr"];

$output = shell_exec('del D:\Daten\Home\$beruf\$jahr\*.* /S /Q');

echo $output;

?>
Biber
Biber 26.01.2006 um 10:32:24 Uhr
Goto Top
Moin AC!D,

Wenn Du PHP-Variablen einbaust, musst Du es tendiziell so machen IMHO:

shell_exec('del "D:\daten\home\"+$beruf+ "\"+ $jahr +"\*.*" /S /Q');

HTH Biber
ACD2
ACD2 26.01.2006 um 12:28:20 Uhr
Goto Top
ich weis nicht, wie und warum, aber dadurch das ich das script jetzt mit ^^ dieser zeile ausgeführt habe, hat es mir auf c:\ alle dateien gelöscht was innerhalb von 60 sec möglich war. jetzt kann ich mich nicht mehr auf dem server anmelden, der server ist frisch auf gesetzt wollte heute abend ein backup machen, tja, das wars, alles neu .......
Biber
Biber 26.01.2006 um 13:00:50 Uhr
Goto Top
Moin AC!D,
kann nicht sein, dass es an diesem Befehl lag.
shell_exec('del "D:\daten\home\"+$beruf+ "\"+ $jahr +"\*.*" /S /Q');

Selbst wenn die Argumente/Parmeter in der Klammer nicht richtig zusammengestoppelt worden sein sollten, z.B. $beruf und $jahr "leer" waren, wäre bestenfalls ein "Syntax-Error" herausgekommen bei:
shell_exec('del "D:\daten\home\\\*.*" /S /Q');
Unter WinXP nicht mal das - da werden beliebig viele "\" am Ende ohne Murren als eines interpretiert.
"Dir d:\daten\home\*.*" bewirkt das gleiche wie "Dir d:\daten\home\\\\*.*". It a Feature, not a bug, sagt Bill. face-wink

However - mit diesem shell_exec()-Aufruf können IMO keine Daten auf Laufwerk C:\ gelöscht worden sein.
Ich glaub Dir ja, dass die Daten weg sind (und finde das auch schlimm), aber die Ursache muss woanders liegen.

Grüße Frank
ACD2
ACD2 26.01.2006 um 13:13:13 Uhr
Goto Top
naja, es ist irgendwie seltsam, ich denk mir auch, so wie es geschrieben ist, ist es eigentlich unmöglich, vorallem, aufm d: ist noch alles da, aber tatsache ist das alles wegist, naja, ich bin dabei ihn neu aufzuziehen, das beste ist, ich bekomme überstunden bezahlt.