Batch Datei auf englischem Server 2003

moloch500

Newbie
Registriert
Mai 2005
Beiträge
2
Hallo Leute,

folgendes Problem, ich habe hier einen englischen Win Server 2003 Standard SP1.
Darauf ist eine Applikation installiert (Content Management System RedDot).
Nun habe ich hier eine .bat Datei, die vom CMS aus gestartet werden soll, mit folgendem Link:

"c:\Program Files\RedDot\CMS\ASP\PlugIns\krones\scripts\set_date_calendar\set_date_calendar.bat".

Mit der .bat Datei wiederum wird folgendes gestartet:

c:\php\php.exe "c:\Program Files\RedDot\CMS\ASP\PlugIns\krones\scripts\set_date_calendar\main.php"

Hier der Inhalt der "main.php"

<?php
include ("../../conf/local.inc");
include ($path_rqllib_conf."/std.inc");

include("data.inc.php");

global $rql, $user_guid;

$debug = new Debug;
$debug->noclose();

$rql = new RQL;

$log_data = array();
$log_data = $rql->login($rd_user,$rd_pass,$rd_project_guid);

if ($log_data){

$log_text = "************************************************************************************"."\r\n";
$log_text .= "Set calendar date. Start: ".get_mysql_date();
save_log_data ($log_text);
echo "Set calendar date. Start: ".get_mysql_date()." \r\n";

$rd_info_loginguid = $log_data['login_guid'];
$rd_info_sessionkey = $log_data['session_key'];
$user_guid = $log_data['user_guid'];

$debug->add_var("Login GUID", $rd_info_loginguid);
$debug->add_var("Session Key", $rd_info_sessionkey);

$rdsession = array ($rd_info_loginguid, $rd_info_sessionkey);

$rql->init($rdsession);
$rql->debug_init($debug);

set_time_limit(0);


$links = $rql->get_links($event_calendar_page);

if ( (!isset($links['months'])) ||
((isset($links['months'])) && ($links['months']['type']!='13') ) ) {
onError($rql, "Fehler: Die Liste 'months' wurde nicht gefunden.");
}

if ( (!isset($links['reference_current_month'])) ||
((isset($links['reference_current_month'])) && ($links['reference_current_month']['type']!='28') ) ) {
onError($rql, "Fehler: Der Container 'reference_current_month' wurde nicht gefunden.");
}

$list_months_guid = $links['months']['guid'];
$reference_container_guid = $links['reference_current_month']['guid'];

$current_date_title = substr(get_mysql_date(),0,4).'.'.substr(get_mysql_date(),5,2);

list($pageid, $pageguid, $pagetitle) = $rql->get_linkedpages($list_months_guid);

$res = FALSE;
foreach($pagetitle as $index=>$title){
if (trim($title == $current_date_title)){
$res = TRUE;
$rql->reference_to_page($reference_container_guid,$pageguid[$index]);
$log_text = "Month page title: $title \r\nMonth page guid: ".$pageguid[$index];
save_log_data ($log_text);
echo "Month page title: $title \r\nMonth page guid: ".$pageguid[$index]." \r\n";
}
}

if ($res == FALSE) onError("Fehler: Die Seite '$current_date_title' wurde nicht gefunden.");

$rql->logout($user_guid);

$log_text = "Set calendar date. Finished: ".get_mysql_date();
echo "Set calendar date. Finished: ".get_mysql_date()." \r\n";

save_log_data ($log_text);

set_time_limit(30);

}// if ($log_data)


function save_log_data ($log_text){
$f = fopen('log.txt','a');
fwrite ($f,$log_text."\r\n");
fclose($f);
}

function get_mysql_date(){
//Datum
$cd = getdate();
foreach ($cd as $index => $value){
if (strlen($value) == 1) $cd[$index] = '0'.$cd[$index];
}
$date=$cd['year']."-".$cd['mon']."-".$cd['mday'];
$time=$cd['hours'].":".$cd['minutes'].":".$cd['seconds'];
$date_time = $date." ".$time;
return $date_time;
}

function onError($massage){
global $rql, $user_guid;
save_log_data ($massage);
$rql->logout($user_guid);
exit($massage);

}

?>

Und zu guter letzt, der Inhalt der Includierten "local.inc"

<?php

$path_cms_plugins = "C:/Program Files/RedDot/CMS/ASP/PlugIns";
$path_rqllib_conf = $path_cms_plugins."/aiticon/rqllib/conf";

include ($path_rqllib_conf."/global.inc");

$path_proj_base = $path_cms_plugins."/krones";
$path_proj_lib = $path_proj_base."/lib";
$path_proj_conf = $path_proj_base."/conf";

?>

Problem:

Wenn ich nun diese ".bat Datei" manuell ausführe, funktioniert der Rest so wie er soll, nur wenn ich die ".bat Datei" über mein CMS ausführe, mit oben genannten Aufruf, bekomme ich im E-Mail Error Log eine Fehlermeldung (Error 255) was das auch immer heißt und herkommt. Der Clou dabei ist, das ganze wurde schon auf einem deutschen Server 2003 getestet, da funktionierts.

Hat da jemand ne Ahnung, an was das liegen könnte?

Gruß moloch500
 
Ich würde jetzt erstmal beim Unterschied englisch - deutsch auf das Datumsformat tippen.
 
bedenke, dass befehle unterschiedlich sein können, je nach dem, ob sie in ner batch datei oder aus der cmd ausgeführt werden. als beispiel sei genannt, dass du bei einer for schleife auf der cmd nur ein % für die variable setzen musst, in der batch musst du aber %% schreiben. beispiel:
cmd:
for %i in (...) do...

bat:
for %%i in (...) do...
 
Zurück
Oben