View Full Version : [ASP o JS] Eseguire comandi DOS
@GuyBrush@
23-12-2003, 15:08
Salve Gente!
come faccio con ASP o JS a eseguire un comando DOS???
In questo caso si tratta di un "copy..."
HELP!!!!:muro:
Non puoi !!!
Ti immagini che problema di sicurezza sarebbe ?!!?!? Al massimo puoi farlo tramite un OCX ActiveX realizzato in VB o VC++...
Per copiare file c'è FileSystemObject:
Sub ManipFiles
Dim fso, f1, f2, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Response.Write "Writing file <br>"
' Write a line.
f1.Write ("This is a test.")
' Close the file to writing.
f1.Close
Response.Write "Moving file to c:\tmp <br>"
' Get a handle to the file in root of C:\.
Set f2 = fso.GetFile("c:\testfile.txt")
' Move the file to \tmp directory.
f2.Move ("c:\tmp\testfile.txt")
Response.Write "Copying file to c:\temp <br>"
' Copy the file to \temp.
f2.Copy ("c:\temp\testfile.txt")
Response.Write "Deleting files <br>"
' Get handles to files' current location.
Set f2 = fso.GetFile("c:\tmp\testfile.txt")
Set f3 = fso.GetFile("c:\temp\testfile.txt")
' Delete the files.
f2.Delete
f3.Delete
Response.Write "All done!"
End Sub
in asp
set oWS=server.createobject("WScript.shell")
ret=oWS.Run("c:\some.bat", 2, true)
if(ret=0) then
response.write("it is working<br>")
else
response.write("not working<br>")
end if
in php
exec()
ciao!
@GuyBrush@
24-12-2003, 11:35
Quando torno al lavoro ci provo :D
Ciao e Grazie ;)
Originariamente inviato da Max 555
in asp
set oWS=server.createobject("WScript.shell")
ret=oWS.Run("c:\some.bat", 2, true)
if(ret=0) then
response.write("it is working<br>")
else
response.write("not working<br>")
end if
Che io sappia solitamente WScript.shell si usa solitamente nei file .vbs da eseguire al'interno di Windows...
L'oggetto ufficiale usato con VBScript in ASP è Scripting.FileSystemObject...
Set fso = CreateObject("Scripting.FileSystemObject")
Set f2 = fso.GetFile("c:\testfile.txt")
f2.Copy ("c:\temp\testfile.txt")
si per copiare i file sicuramente l' fso e' molto meglio e piu' testato.
Per eseguire comandi DOS usi Wshell
@GuyBrush@
29-12-2003, 09:25
Originariamente inviato da Max 555
in asp
set oWS=server.createobject("WScript.shell")
ret=oWS.Run("c:\some.bat", 2, true)
if(ret=0) then
response.write("it is working<br>")
else
response.write("not working<br>")
end if
in php
exec()
ciao!
Nella funzione oWs.Run... che significato ha il 2 e il true? quali altri parametri si possono mettere?
Thanks! :)
@GuyBrush@
29-12-2003, 09:42
altro problema.. non funziona :cry:
allora, ho copiato pari pari la funzione.... ma mi da not working.
Il .bat in questione è simile a questo
xcopy /y \\server1\d$\ d:\www\file.mdb
è possibile che dia problemi l'hd in rete?
Ciao
Che errore ti da?
prova la linea di comando da dos e vedi se nn ti fa errori?
qui trovi qualcosa..
http://forums.devshed.com/archive/34/2003/10/4/29673
ti sto cercando le specificeh ma nn ne trovo :_(
ma cosa devi fare di preciso?
nn puoi utilizzare php? :)
@GuyBrush@
29-12-2003, 10:02
allora, ti rispondo a tappe ;)
1) In dos funziona, a patto che il file sia già esistente su d:\www (e così è)
2) Posso utilizzare solo ASP
3) Devo eseguire quell'istruzione, cioè copiare un file (file.mdb) da un server in rete, sull'HD della macchina web (cioè quella in questione)
ok? :D :sofico: :D
E i permessi sulla rete ?
d$ è una condivisione di amministrazione...e quindi presuppongo che avrai entrambi gli amministratori delle macchine con stesso username e password...
Lo script ASP viene eseguito sotto un utente diverso...probabilmente è per quello...
Potresti montare \\Server\d$ come drive locale alla macchina su cui c'è IIS ?
@GuyBrush@
29-12-2003, 11:00
Originariamente inviato da cionci
Potresti montare \\Server\d$ come drive locale alla macchina su cui c'è IIS ?
Questo no.. il file deve essere generato li...
poi.. si, entrambe le macchine hanno lo stesso administrator : password :)
Sì...ok, ma se monti il driver di rete come drive locale salti l'utilzizo dei permessi e risolvi il problema...
Per monti intendo: connetti drive di rete !!!
Esatto..
prova a conntettere la cartella \\server\d$ come unita' di rete..
secondo tasto su risorse di rete e connetti.. prova cosi..
Ah...attenzione che se non logghi l'amministratore la connessione di rete non ti si abilita !!!
Quindi è sempre un problema una cosa simile...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.