PDA

Επιστροφή στο Forum : Windows Variables



SRtheDreadlord
20-07-06, 17:56
Θέλω να μου πει κάποιος αν υπάρχει variable για το My Documents όπως είναι πχ το %USERPROFILE% να είναι κάποια που να σε πηγαίνει στο documents του user με τον οποίο είσαι συνδεδεμένος, γιατί εγώ έχω μετακινήσει τα My Documents στον D:\ και δεν με καλύπτει το κλασσικό path %USERPROFILE%\My Documents.
Ευχαριστώ.

AddictedToChaos
20-07-06, 18:03
Μπορεις και μεσω registry να τα κανεις αυτα. Αλλα για το My documents μπορεις να το κανεις και απο το GUI των Windows.

Πανε στις ιδιοτητες του start menu και επελεξε να εμφανιζεται το My documents εκει.

Επειτα πανε στις ιδιοτητες του My Documents απο το start menu και επελεξε "Move..."

Επιλεγεις το folder που θελεις και πατας εντερ. Μετα θα σε ρωτησει αν θελεις να μετακινηθουν τα περιεχομενα της παλιας τοποθεσιας, στην νεα. Εδω εσυ αποφασιζεις τι θελεις να κανεις.

SRtheDreadlord
20-07-06, 18:12
Δεν θέλω να μετακινήσω τα My Documents, το έχω ήδη κάνει αλλά το πρόβλημα μου είναι ότι δεν έχω μία μεταβλητή να καλύπτει τον φάκελο My Documents όπου κι αν είναι και να μπορεί να χρησιμοποιηθεί σε οποιονδήποτε υπολογιστή.

WAntilles
20-07-06, 19:01
Άνοιξε ένα Command Prompt και δώσε:


SET

Αν θυμάμαι καλά, υπάρχει σχετική μεταβλητή, και θα την δεις εκεί ποιά είναι.

SRtheDreadlord
20-07-06, 19:25
Δυστυχώς ούτε εκεί υπάρχει :(
Αυτή η εντολή σου δείχνει όλες τις μεταβλητές του συστήματος;
Αν ναι τότε πάμε στη λύση νούμερο 2, που είναι να φτιάξω μία δική μου μετβλητή, αλλά έτσι δεν θα μπορεί να μπαίνει σε κάθε υπολογιστή:hmm:
Αν ξέρει κανείς καμμία άλλη λύση ας postάρει παρακαλώ;)

WAntilles
20-07-06, 20:34
Αυτή η εντολή σου δείχνει όλες τις μεταβλητές του συστήματος;

Δεν είμαι σίγουρος εάν σου τις δείχνει όλες, ή μόνο όσες έχουν λάβει κάποια τιμή.


Αν ναι τότε πάμε στη λύση νούμερο 2, που είναι να φτιάξω μία δική μου μετβλητή, αλλά έτσι δεν θα μπορεί να μπαίνει σε κάθε υπολογιστή:hmm:
Αν ξέρει κανείς καμμία άλλη λύση ας postάρει παρακαλώ;)

Μπορείς να το κάνεις αυτό, και να την δηλώσεις σε όλους τους υπολογιστές.

ghostnik
20-07-06, 22:22
Θα μπορούσες να χρησιμοποιήσεις vbscript


set WshShell = WScript.CreateObject("WScript.Shell")
path = WshShell.SpecialFolders("MyDocuments")
msgbox path

Σώσε το με extension vbs και δές αν λειτουργεί ...

edit:
Άν σου δουλέψει για να πάρεις την τιμή στο shell άλλαξε την τελευταία γραμμή με WScript.Echo path.
Eπίσης για να το τρέξεις απο το command line θα πρέπει να γράψεις cscript test.vbs

Κοίτα και αυτό σχετικά με scripting Microsoft Technet (http://www.microsoft.com/technet/scriptcenter/scripts/desktop/special/default.mspx?mfr=true)

WAntilles
20-07-06, 22:47
Θα μπορούσες να χρησιμοποιήσεις vbscript...

Να ετοιμαστεί καλύτερα και για first contact με νέες μορφές ζωής.

ghostnik
20-07-06, 22:51
Γιατί το λές αυτό WAntilles ??

SRtheDreadlord
21-07-06, 13:23
Θα μπορούσες να χρησιμοποιήσεις vbscript


set WshShell = WScript.CreateObject("WScript.Shell")
path = WshShell.SpecialFolders("MyDocuments")
msgbox path

Σώσε το με extension vbs και δές αν λειτουργεί ...

edit:
Άν σου δουλέψει για να πάρεις την τιμή στο shell άλλαξε την τελευταία γραμμή με WScript.Echo path.
Eπίσης για να το τρέξεις απο το command line θα πρέπει να γράψεις cscript test.vbs

Κοίτα και αυτό σχετικά με scripting Microsoft Technet (http://www.microsoft.com/technet/scriptcenter/scripts/desktop/special/default.mspx?mfr=true)


Ώραία το έφτιαξα και δουλεύειι. Αλλά εμένα αυτό πως μου χρησιμεύει;

ghostnik
21-07-06, 13:50
Είναι ο μόνος τρόπος για να βρείς που είναι τα My Documents (αν δεν είναι στο κλασικό σημείο).

Αλλά εμένα αυτό πως μου χρησιμεύει;
Πές μου τι ακριβώς θέλεις να κανεις και θα σου πώ πως να το χρησιμοποιήσεις...

WAntilles
21-07-06, 14:31
Γιατί το λές αυτό WAntilles ??

Διότι τα 3 scripting engines της Microsoft, είναι μακράν το καλύτερο "λίπασμα" για πάσης μορφής γουωρμο-τροτζάνιους.

SRtheDreadlord
21-07-06, 14:36
Πές μου τι ακριβώς θέλεις να κανεις και θα σου πώ πως να το χρησιμοποιήσεις...

Προσπαθώ να φτιάξω κάποια παλιά μου saves σε SFX archives με το WinRAR και μερικά παιχνίδια τα saves τα βάζουν στα My Documents, έτσι επειδή καμμιά φορά οι φίλοι μού ζητάνε saves ;) είπα να το φτιάξω έτσι ώστε να μπαίνει σε κάθε υπολογιστή και όχι μόνο στον δικό μου. Εκεί διαπίστωσα ότι δεν υπάρχει καμμία μεταβλητή να βάλω για το My Documents.

AddictedToChaos
22-07-06, 16:25
Αυτο μηπως δουλεψει;


%ALLUSERSPROFILE%\Documents

alefgr
23-07-06, 01:31
Μεταβλητές υπάρχουν.

Η μία είναι αυτή που ανέφερε στο παραπάνω post ο AddictedToChaos και έχει να κάνει με το που βρίσκεται το folder 'All Users\Documents' και η μεταβλητή

‘%USERPROFILE%\Documents’

που δείχνει που είναι το My Documents του χρήστη που έχει κάνει logon.

SRtheDreadlord
23-07-06, 16:32
Δεν μου κάνει αυτή γιατί όπως ανέφερα και πιο πάνω έχω μετακινήσει τα My Documents οπότε δεν ισχύει η κλασσική μεταβλητή %USERPROFILE%\Documents γιατί με μεταφέρει στο path %HOMEPATH%\Documents and Settings\User Profile\Documents ενώ στο δικό μου PC τα Documents δεν βρίσκονται καν στο ίδιο partition με τα Windows και επειδή μερικές φορές θέλω να το μεταφέρω σε άλλους υπολογιστές δεν θέλω να έχω το δικό μου path προεπιλεγμένο γιατί απλούστατα δεν θα ισχύει.;)

alefgr
23-07-06, 17:42
Δηλαδή αν μετακινήσεις το folder του MyDocuments, η μεταβλητή συστήματος USERPROFILE, συνεχίζει να δείχνει το παλιό path;

SRtheDreadlord
23-07-06, 18:03
Το %USERPROFILE% είναι μεταβλητή που υποδηλώνει το εξής path %HOMEPATH%\Documents and Settings\User Profile και επειδή το default path για τα My Documents είναι %HOMEPATH%\Documents and Settings\User Profile\My Documents μπορείς να το δηλώσεις ως %USERPROFILE%\My Documents αλλά αν το έχεις μετακινήσει κάπου αλλού αυτό το path δεν ισχύει γιατί όταν μετκινείς τα My Documents δεν μετακινεί όλο το φάκελο του χρήστη μόνο τον υποφάκελο My Documents. Κι αυτή η MS όλο προβλήματα, ούτε μία μεταβλητή με τιμή το path των My Documents?? :rtfm:

alefgr
23-07-06, 20:34
Άρα σε αυτή την περίπτωση θα έπρεπε το MyDocuments, να έχει την δικιά του μεταβλητή συστήματος. Στην πρώτη ευκαιρία που θα βρώ χρόνο, θα ρίξω μιά ματιά στην MSDN Library μπας και βρώ τίποτε...

SRtheDreadlord
23-07-06, 23:09
Φίλε μου, σ'ευχαριστώ πολύ:D

alefgr
24-07-06, 16:50
Όσο και να το έψαξα, τουλάχιστον για μεταβλητή του shell, δεν υπάρχει καμία που να αναφέρεται στο path του "My Documents". Μόνο καλώντας εντολή συστήματος, ή από VB ή από C μπορείς να πάρεις το path του folder.

SRtheDreadlord
24-07-06, 18:46
Εντολή συστήματος; Τι εντολή δηλαδή;

alefgr
24-07-06, 19:28
Οι περισσότερες DLL, περιλαμβάνουν "ρουτίνες" (εντολές) όπου η κλήση τους μπορεί να γίνει μόνο από προγράμματα και όχι απ' ευθείας από το shell. Φυσικά θα πρέπει εκ των προτέρων να είναι γνωστή η συνθήκη κλήσης της αντίστοιχης "ρουτίνας", δηλαδή αν πρέπει να περάσουμε παραμέτρους και ποιές, καθώς και το τι είδους μεταβλητή επιστρέφει (αν επιστρέφει).

SRtheDreadlord
24-07-06, 19:59
Οπότε μάλλον θα αφήσω το path ανοιχτό για edit και θα βάλω μία επεξήγηση δίπλα για αυτούς που δεν ξέρουν :(

SRtheDreadlord
27-07-06, 17:31
Μήπως ξέρει κανείς το πώς μπορώ να ορίσω μία μεταβλητή με τιμή από την registry;

@ ADSLgr.com All rights reserved.