다른 사람들과 비슷한 문제가 있는데, 해결하지 않고 여러 가지 작업을 시도했습니다.PHP - Windows의 명령 줄 인수가 전달되지 않습니다.
나는 무엇이 일어나는지 보여주기 위해 매우 작고 간단한 테스트 스크립트를 만들었습니다.
<?php
print "In Script!\n";
var_dump($argv);
?>
좋아, 이제 다음 명령을 실행할 수 있습니다 : -
C:\TEMP> c:\php\php.exe hughTest.php 1 2 3 4
출력 : - 이것은 내가 기대하고있는 무슨이다, 좋은
In Script!
array(4) {
[0]=>
string(12) "hughTest.php"
[1]=>
string(1) "1"
[2]=>
string(1) "2"
[3]=>
string(1) "3"
}
. 지금은 단지 .PHP로 스크립트를 실행 : -
C:\TEMP> hughTest.php 1 2 3
출력 : -
In Script!
array(1) {
[0]=>
string(20) "C:\temp\hughTest.php"
}
이 내가 기대했던 아닙니다! 매개 변수는 어디에 있습니까?
출력을 변경하지 않고 파일 연결을 확인/시도했습니다. 나는 또한 PHP의 몇 가지 다른 버전을 시도했습니다. (5.4 및 5.5). x64에서 w32.
협회 : .PHP =
FTYPE phpfile이라고 : phpfile이라고 = "C : \ php \ php.exe에 ''1 % '- % *
는 시도 -
phpfile="C:\php\php.exe" "%1" -- %~2
phpfile="C:\php\php.exe" "%1" %*
phpfile="C:\php\php.exe" "%1" -- "%*"
같은 결과가 모두 있습니다.
다음에 어디를보아야할까요?
휴
MSDN에서 '% *'가 해당 컨텍스트에서 지원되는지 확인 하시겠습니까? 셸이 지원한다고해서 Windows의 다른 모든 부분도 마찬가지라는 것을 의미하지는 않습니다. – Jon
그건 분명히 Windows XP에서 작동합니다. 그러나 그것은 Windows 8.1 또는 Windows 2008에서 작동하지 않습니다. 나는 또한 % 2 % 3 % 4 및 다른 옵션을 시도했습니다. 따옴표 유무에 관계없이 마치 다른 것을 무시하는 것과 같습니다. 나는 "스쿠비 (Scooby)"가 매개 변수로 나타나야한다고 생각하고 있지만 그렇게하지는 않았다. – Hugh
나는 또한 관리 셸과 함께 사용하지 않고 두 가지 모두를 시도했습니다. 같은 결과. – Hugh