Προς το περιεχόμενο

Απορία με cmd bat file και αυτόματο τρέξιμο μέσω keypad / Razer Synapse


philos

Προτεινόμενες αναρτήσεις

Λοιπόν, έχω βάλει ως συντόμευση στο keypad μου, το αρχείο c:/xampp/xampp_shell.bat του XAMPP, το οποίο φαίνεται ότι τρέχει όταν πάω στο γραφικό περιβάλλον > και πατάω το κουμπί Shell και ανοίγει το cmd ως εξής:

1.png.1100bd5c2dd6e034bc4a5ed35c5bdfd1.png

Όταν όμως δεν το ανοίγω από το γραφικό περιβάλλον του xampp ή χειροκίνητα με διπλό click, αλλά πατώντας τη συντόμευση μέσω του keypad, βλέπω αυτό:

2.png.5c9f38e4d0fb31b2d3ee282a93899933.png

Κι έτσι, αν δοκιμάσω να τρέξω εντολές για το software XenForo 2 που φτιάχνω addons, βγάζει αυτό, ενώ το cmd.php βρίσκεται στον φάκελο \xf2:

3.png.ed06a1e522f2c24effa02d55597fbbf5.png

 

Να σημειώσω ότι αν φορτώσει το shell όπως την πρώτη εικόνα (όπου δεν αναφέρεται το /system32), το cmd.php και γενικά όλα λειτουργούν όπως πρέπει.

Καμιά ιδέα οι ειδικοί;

Αυτό είναι το περιεχόμενο του xampp_shell.bat. Στην ουσία το αρχείο τρέχει με κάποια διαφορά όταν το τρέχω απευθείας σε σχέση με το όταν το τρέχω πατώντας το κουμπί του keypad (Razer Tartarus v2) με συντόμευση.

@ECHO OFF
GOTO weiter
:setenv
SET "MIBDIRS=%~dp0php\extras\mibs"
SET "MIBDIRS=%MIBDIRS:\=/%"
SET "MYSQL_HOME=%~dp0mysql\bin"
SET "OPENSSL_CONF=%~dp0apache\conf\openssl.cnf"
SET "OPENSSL_CONF=%OPENSSL_CONF:\=/%"
SET "PHP_PEAR_SYSCONF_DIR=%~dp0php"
SET "PHP_PEAR_BIN_DIR=%~dp0php"
SET "PHP_PEAR_TEST_DIR=%~dp0php\tests"
SET "PHP_PEAR_WWW_DIR=%~dp0php\www"
SET "PHP_PEAR_CFG_DIR=%~dp0php\cfg"
SET "PHP_PEAR_DATA_DIR=%~dp0php\data"
SET "PHP_PEAR_DOC_DIR=%~dp0php\docs"
SET "PHP_PEAR_PHP_BIN=%~dp0php\php.exe"
SET "PHP_PEAR_INSTALL_DIR=%~dp0php\pear"
SET "PHPRC=%~dp0php"
SET "TMP=%~dp0tmp"
SET "PERL5LIB="
SET "Path=;%~dp0;%~dp0php;%~dp0perl\site\bin;%~dp0perl\bin;%~dp0apache\bin;%~dp0mysql\bin;%~dp0FileZillaFTP;%~dp0MercuryMail;%~dp0sendmail;%~dp0webalizer;%~dp0tomcat\bin;%Path%"
GOTO :EOF
:weiter

IF "%1" EQU "setenv" (
    ECHO.
    ECHO Setting environment for using XAMPP for Windows.
    CALL :setenv
) ELSE (
    SETLOCAL
    TITLE XAMPP for Windows
    PROMPT %username%@%computername%$S$P$_#$S
    START "" /B %COMSPEC% /K "%~f0" setenv
)

Ξέρω ότι είναι πολύ ειδικευμένο, αλλά λέω μήπως κάποιος μπορεί να καταλάβει γιατί τρέχει λάθος το συγκεκριμένο bat. :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βάζοντας το cd c:\xampp βλέπω πλέον αυτό:

4.png.51014e170465386cf54b589e7d05d2af.png

Δηλαδή το ίδιο λάθος.

Ενώ αν τρέξω το bat χειροκίνητα με διπλό κλικ ή από το πανελ του xampp η διαδικασία βάνει καλώς:

5.png.1e0ed5939723973572dad3f3eaa3b891.png

 

Μήπως είναι θέμα δικαιωμάτων κατά το τρέξιμο;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Στις 30/10/2019 στις 10:58 ΠΜ, Orestis_G είπε

Για κάνε μια δοκιμή βάζοντας το πλήρες path για το cmd.php (π.χ. php \xampp\htdocs\xf2\cmd.php xf-addon:create)

Αυτό δούλεψε, αλλά τρέχω κι άλλες εντολές και δεν θέλω να βάζω το πλήρες path, ώστε και από συντόμευση!

Στις 30/10/2019 στις 1:31 ΜΜ, micos000 είπε

Στην cd δοκίμασε να δώσεις παράμετρο /d δηλαδή:

cd /d c:\xampp

Το έβαλα αλλά πάλι το ίδιο, ορίστε screenshot:

ins.png.fe4791643da5bf1abfb8436d060317d6.png

Μας λέει κάτι η πρόταση του Ορέστη ότι αν βάλουμε το πλήρες path, τρέχει, ενώ αν γίνει από ήδη changed directory, δεν τρέχει;

Μήπως έχει να κάνει με δικαιώματα πρόσβασης;

Επεξ/σία από philos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Δοκίμασες στην set path γραμμή να προσθέσεις στο τέλος και το path του cmd.php π.χ.

;C:\xampp\htdocs\xf2

Ή να προσθέσεις μόνιμο path με την εντολή

setx /M path "%path%;C:\your\path\here\"

Επίσης, μήπως το bat το τρέχεις σαν διαχειριστής από το keypad ενώ με διπλό κλικ το τρέχεις σαν χρήστης; Αν το τρέχεις σαν διαχειριστής τότε αλλάζει γενικώς το περιβάλλον χρήστη και οι παράμετροι.

Δοκίμασε να τρέψεις το bat από cmd που άνοιξες σαν διαχειριστής να δεις αν σου κάνει τα ίδια.

Επεξ/σία από micos000
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Το γεγονός ότι σου τρέχει όταν βάλεις το πλήρες path, σημαίνει ότι στην άλλη περίπτωση το τρέχον directory δεν είναι το directory του αρχείου php.Βάλε στη συντόμευσή σου ως working directory το φάκελο στον οποίον βρίσκεται το php (C:\xampp\htdocs\xf2).

Όταν γράφουμε php <filename> ή python <filename> ή οτιδήποτε σχετικό, θεωρείται ότι το <filename> βρίσκεται στο τρέχον directory (.\filename)

Μόλις πρόσεξα ότι βρίσκεσαι στο directory του php. Κάνε τα εξής:

dir cmd.php Το βλέπεις;
Αν ναι, δοκίμασε ένα php .\cmd.php xf-addon:create (Πρόσεξε την τελεία). Τρέχει;

Επεξ/σία από Orestis_G
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...