[PHP] opstarten batch file onder NT

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb een batch file die opgestart moet worden, maar dit gebeurt niet.

Ik heb de volgende codes uitgeprobeerd:
code:
1
$output = `batch.bat`;


code:
1
$output = shell_exec("batch.bat");

en exec
Ik heb genoeg rechten om de batch file op te starten.
Wat in de batch file staat werkt ook los in de commandline.
De code werkt wel op win98 met appache.
Maar niet op een NT machine met IIS (Hier kan niet van afwijken helaas)
De PHP versies zijn op de NT en win98 machine gelijk

Heeft iemand een idee?

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

kijk eens in je taskmanager?
staat ie daar ergens?

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nope, het bestand wordt op een of andere manier niet opgestart. Ik kan hem dus wel gewoon in de commandline opstarten (de batch file dan)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
passthru() wil ook niet werken maar wel weer op de win98 machine
het batch filetje heeft wel volledige rechten op op te starten (anders geeft PHP een permission denied )

*zucht*

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

[gokmodus]
1. Heb je iets van een virusscanner draaien met scriptblocking?
2. Werkt PHP, net als ASP, ook met het IUSR_account en moet je deze de juiste rechten geven ipv het bestand?
[/gokmodus]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gorgi_19
1. zowel op win98 als NT zelfde virusscanner (lang leve standardisatie)
2. Al zet ik de user op administrator dan nog hetzelfde probleem

:(

Acties:
  • 0 Henk 'm!

  • sjon.
  • Registratie: November 2002
  • Laatst online: 14-01-2024
PHP:
1
2
3
<?php
    $output = `cmd /Q /C call batch.bat`;
?>


of batch bestand inlezen, en regel voor regel uitvoeren... :)


sjon.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sjon,
die regel geeft niets terug op win98 systeem ....
en NT ook niet

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmmm als ik
code:
1
`startjava.bat > C:\x.txt`;

gebruik schrijft ie wel een file weg, met goede content
de output wordt dus niet gecaptured! (know bug :? )

Acties:
  • 0 Henk 'm!

  • sjon.
  • Registratie: November 2002
  • Laatst online: 14-01-2024
die regel was ook specifiek voor NT. W98 gebruikt command.com, NT cmd.com (of exe, whatever). en was ook maar uit 't blote hoofd :)

je laatste post zette me ff aan't denken. normaal als je de backtick gebruikt, krijg je de uitvoer van 't progje terug, wat in dit geval cmd is. en aangezien cmd zelf niets terug geeft, is het idd mogelijk dat ie leeg blijft. wat staat er precies in je batch file? en heb je popen() ook al geprobeerd? is het ook mogelijk om de inhoud van je batch file regel voor regel uit te voeren?


sjon.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sjon,

Hier op de werkvloer vinden we het al mooi als het werkt (voor intern gebruik)
Er staat het volgende in batch bestand:
code:
1
java GenerateKey $nummer

Waarom dat in een bestand geknikkerd?
Omdat in eerste instantie de backtick, exec , shell_exec etc etc niet wilde werken met extra parameters .... nu werkt het wel (don't ask me how)
dus ik heb nu in de code staan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//kijken of bestand bestaat, zo ja verwijderen!
if(file_exists('nummer.txt'))
{
    unlink ('nummer.txt');
}


$output = `java GenerateKey $modulekey > nummer.txt`;
$fp = fopen('nummer.txt', 'r');
$contents = fread ($fp, filesize ('nummer.txt'));
fclose($fp);
//echo $contents;
// Split return value op spatie
$parts = explode(' ', $contents);


Works for me :)
Het is dan wel een flinke workaround, maar zal wel des NTees zijn ....

Bedankt iig

sjon,
Die andere opties zal ik later nog proberen.
Pagina: 1