Forum Webscript.Ru
Программирование => PHP => Тема начата: covex1 от 28 Февраля 2006, 16:23:25
-
Люди трабла!
exec("xcopy z:\\home\\test.ru\\www z:\\test\\Backup\\");
?>
Команда не выполняется. Пробовал и system использовать. Пробывал bat файл использывать - тот же результат. Ничего не помогает. Сам батник запускаю - все здорово, а вот с помощью exec никак.
При этом exec \'copy ..... \' работает.
Чего за трабла такая? Как мне целиком фордер скопировать в другое место?
Все дело под XP стоит
-
Этот код содержит синтаксическую ошибку.
Ты либо врешь и показываешь не тот код (а надо показывать именно тот код, который ты выполняешь - если он не более 10 строк)
либо не умеешь отлаживать код - по этой теме есть статья на http://phpfaq.ru/
-
covex1:
Этот код содержит синтаксическую ошибку.
Ты либо врешь и показываешь не тот код (а надо показывать именно тот код, который ты выполняешь - если он не более 10 строк)
либо не умеешь отлаживать код - по этой теме есть статья на http://phpfaq.ru/
Содержимое файла test.bat
xcopy Z:\\home\\test.ru\\www Z:\\test\\
Содержимое скрипта:
system("z:\\\\test.bat", $retval);
echo $retval;
?>
Результат выполнения в браузере выглядит так:
z:\\home\\test.ru\\www>xcopy Z:\\home\\test.ru\\www Z:\\test\\ 0
Ни файлы ни папки не скопированны
Про вранье. Я сегодня целый день трах..... с этой банальной фигней. Перебрал кучу вариантов написания и с обычными слешами и с двойными, прямым запросом и через батник...... Я просто устал несколько часов делать безрезультатные "заходы" на одну и туже траблу. А Вы сразу про вранье.... Неприятно
-
xcopy иногда требует интерактива, например если такой файл уже есть она спросит, надо ли обновить файл.
Насчет вранья - просто имей ввиду, что тебе нужна здесь помощь и для тебя же будет больше пользуы если в твоих сообщениях будет меньше ошибок.
-
covex1:
xcopy иногда требует интерактива, например если такой файл уже есть она спросит, надо ли обновить файл.
Батник исполняется без интерактива.
-
у меня твой пример при первом запуске работает нормально, при втором зависает с выводом путя. Отсюда и мой вывод.
А если запустить не из броузера а из командной строки :
/path/to/php.exe your_script.php
?
xcopy /Y ..... тоже не помогает ?
-
Макс:
у меня твой пример при первом запуске работает нормально
Запустил из командной строки, все путем.
z:\\usr\\local\\php\\php.exe z:\\home\\test.ru\\www\\backup.php
backup.php:
exec("z:\\\\test.bat");
?>
В test.bat то же что и вчера.
Запускаю из браузера:
system("z:\\\\usr\\\\local\\\\php\\\\php.exe z:\\\\home\\\\test.ru\\\\www\\\\backup.php",$re);
echo $re;
?>
Получаем вывод:
Content-type: text/html
X-Powered-By: PHP/4.3.9
0
Файлы не скопированы. Не согу понять что означает "0" в выводе.
В челом не понятный замут. Наковырял в инете scopy.exe от 2000 виндов, с ней работает, но это какой-то усеченный вариант, надо сначала создавать папку дестен, а потом копировать в нее. Сразу не получается.....
В целом я в шоке....
-
covex1:
Запустил из командной строки, все путем.
Я не знаю как в windows устроена система безопасности и распределение прав доступа, но по-моему нужно копать в эту сторону.
Скорее всего скрипт из под веб-сервера запускается с другими привелегиями
-
covex1:
Не согу понять что означает "0" в выводе.
Матчасть поучить религия не позволяет?
Description
string system ( string command [, int &return_var] )
...
return_var
If the return_var argument is present, then the return status of the executed command will be written to this variable.
первоисточник (http://www.php.net/system)
Для тех кто в танке:
Второй параметр возвращает результат отработки команды.
Для тех у кого нет клавиши F1 на клавиатуре и кто не видит дальше меню Пуск:
Признаком ошибки выполнения приложения является возвращаемое значение, отличное о нуля.
Ноль является признаком успешного завершения операции/приложения.
-
ThE0ReTiC:
Матчасть поучить религия не позволяет?
Какие все грубые учителя! Если все такие умные, так объясни почему в результате выполнения выводится "0", а ничего не скопировано? Про то что значит ноль, я еще знал до создания поста, а вот почему он пишется, и при этом ничего не происходит, я не знаю до сих пор.
-
covex1
Патаму что это результат выполнения php.exe, которому на вход дали скрипт и он его корректо отработал.
Результат выполнения xcopy надо обрабатывать в батнике, получать в backup.php и обрабатывать там, а не тупо выполнять команду exec и ждать что оно само все сделает.
covex1:
то что значит ноль, я еще знал до создания поста
Зачем тогда писать что это непонятно?
covex1:
Какие все грубые учителя!
Какие все тупые и ленивые студенты.
-
ThE0ReTiC:
Какие все тупые и ленивые студенты.
Специфика отечественного преподавательского состава - обвинить студентов в грубой форме в лени и тупизме.
Спасибо, что не забываете это делать.
Считаю тему закрытой, т.к. трабла видимо существует из-за специфики установленного софта на моем компе.
Вопрос был задан еще на 2 форумах, и результат выполнения скрипта
exec("xcopy z:\\\\home\\\\test.ru\\\\www z:\\\\test\\\\Backup\\\\ /s");
?>
у людей которые протестировали у себя принес положительные результат: все скопировалось.
-
covex1:
Специфика отечественного преподавательского состава - обвинить студентов в грубой форме в лени и тупизме.
Спасибо, что не забываете это делать.
Специфика отечественного студенчества отлынивать, бить баклуши и что бы ни делать, только бы ничего не делать.
Всегда пожалуйста.
Тема закрыта.