विंडोज कमांड प्रॉम्प्ट पर ~ (उपयोगकर्ता के घर निर्देशिका) के लिए विकल्प क्या है?


215

मैं कुछ फ़ाइलों को स्थानांतरित करने के लिए कमांड प्रॉम्प्ट का उपयोग करने की कोशिश कर रहा हूं, मुझे लिनक्स टर्मिनल का उपयोग किया जाता है जहां मैं ~अपने घर की निर्देशिका को निर्दिष्ट करने के लिए उपयोग करता हूं जिसे मैंने हर जगह देखा है, लेकिन मैं इसे विंडोज़ कमांड प्रॉम्प्ट ( Documents and Settings\[user]) के लिए नहीं ढूंढ सकता हूं

जवाबों:


324

आप निराश होंगे: %userprofile%

आप अन्य टर्मिनलों का उपयोग कर सकते हैं, हालांकि। पॉवर्सशेल, जो मुझे लगता है कि आप XP और बाद में प्राप्त कर सकते हैं (और Win7 के साथ प्रीइंस्टॉल्ड आता है), आपको ~होम डायरेक्टरी के लिए उपयोग करने की अनुमति देता है ।


39

आप %HOMEDRIVE%%HOMEPATH%ड्राइव + \docs settings\usernameया के लिए कर सकते हैं \users\username


3
इस उत्तर ने स्थानीय सिस्टम खाते के रूप में चलने वाली सेवा के लिए काम किया। इस मामले में% userprofile% नहीं करता है।
डॉनबेकर

15

आप उपयोग कर सकते हैं %systemdrive%%homepath%इसे पूरा करने के लिए पर्यावरण चर का ।

जब दो कमांड वैरिएबल होते हैं, तो आपको नीचे दिए गए वांछित उपयोगकर्ता के होम डाइरेक्टरी का रास्ता देता है:

  1. echo %systemdrive%कमांड प्रॉम्प्ट पर चल रहा है:

    C:
    
  2. echo %homepath%कमांड प्रॉम्प्ट पर चल रहा है:

    \Users\<CurrentUserName>
    

जब एक साथ प्रयोग किया जाता है तो यह बन जाता है:

C:\Users\<CurrentUserName>

आपको% homedrive% की भी आवश्यकता होगी; एलेक्स के का जवाब देखें, ऊपर
एडवर्ड फॉक

2
@EdwardFalk मैंने अपना जवाब तय कर दिया है। मैं %systemdrive%पर्यावरण चर का उल्लेख करने से चूक गया था जो %homedrive%एलेक्स द्वारा उल्लिखित है। अगर आपको कुछ गलत लगता है तो कृपया मुझे इस पर अपनी प्रतिक्रिया दें।
RBT

8
विंडोज़ में आप अपने पूरे उपयोगकर्ता फ़ोल्डर को किसी अन्य ड्राइव पर ले जा सकते हैं (Ex: D: \ MyUser)। उन स्थितियों में% systemdrive %% homepath% विफल हो जाएगा। इसके बजाय% HOMEDRIVE %% HOMEPATH% का उपयोग किया जाना चाहिए।
डैनियल सैंटोस

सच। यह संभव है, लेकिन यह सामान्य नहीं है कि लोग इन मानक पर्यावरण चर को बदल सकें। सामान्य कॉर्पोरेट वातावरण में ये पर्यावरण चर AD समूह नीतियों के माध्यम से IT विभाग द्वारा शासित होते हैं जैसा कि यहां और यहां बताया गया है
RBT

6

अपडेट - बेहतर संस्करण 18 जुलाई 2019।

अंतिम सारांश, भले ही मैं ज्यादातर विंडोज़ कंसोल काम के लिए पॉवरशेल पर चला गया हूं, लेकिन मैंने इस पुराने cmd मुद्दे को लपेटने का फैसला किया है, मुझे आज एक cmd कंसोल पर जाना था, और इस सुविधा की कमी ने वास्तव में मुझे मारा। यह अंत में रिक्त स्थान के साथ भी काम करता है, जहां मेरा पिछला उत्तर विफल होगा।

इसके अलावा, यह अब अन्य घर उप-फ़ोल्डरों के लिए भी उपसर्ग के रूप में ~ का उपयोग करने में सक्षम है, और यह आगे-स्लैश को बैक-स्लैश के रूप में अच्छी तरह से स्वैप करता है। तो यहाँ यह है;

चरण 1. इन डॉस मैक्रोज़ बनाएँ , कहीं न कहीं वे हर बार cmd शुरू होता है उठाया।

DOSKEY cd=cdtilde.bat $* 
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..

चरण 2. cdtilde.bat फ़ाइल बनाएँ और इसे अपने PATH में कहीं रखें

@echo off

set dirname=""
set dirname=%*
set orig_dirname=%*

:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%

:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%

:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"==""  (
    if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
    if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)

set dirname=%dirname:"=%

:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
    set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%

:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%

chdir /D "%dirname%"

के साथ ठीक परीक्षण;

cd ~ (traditional habit)
cd~  (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")

ओह, यह आलसी को उद्धृत करने की भी अनुमति देता है, जिसे मैंने उपयोगी पाया, यहां तक ​​कि जब स्थान फ़ोल्डर पथ नामों में होते हैं, क्योंकि यह सभी तर्कों को लपेटता है जैसे कि यह एक लंबा स्ट्रिंग था। जिसका मतलब है कि सिर्फ एक प्रारंभिक उद्धरण भी काम करता है, या पूरी तरह से उद्धरण के बिना भी काम करता है।

नीचे दिए गए अन्य सभी सामानों को अब नजरअंदाज किया जा सकता है, इसे ऐतिहासिक कारणों के लिए छोड़ दिया गया है - इसलिए मैं फिर से वही गलतियाँ नहीं करता


पुराना अपडेट 19 अक्टूबर 2018।
यदि किसी और ने मेरे दृष्टिकोण की कोशिश की, तो नीचे दिए गए मेरे मूल उत्तर ने रिक्त स्थान को नहीं संभाला, उदाहरण के लिए, निम्न विफल रहा।

> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.

मुझे लगता है कि इसे हल करने का एक तरीका होना चाहिए। यदि मैं अपना उत्तर सुधार सकता हूं तो फिर से पोस्ट करूंगा। (ऊपर देखें, मुझे आखिरकार वह सब मिल गया जिस तरह से मैं चाहता था।


मेरा मूल उत्तर, अभी भी काम की जरूरत है ... 7th Oct 2018।
मैं आज ही इसे करने की कोशिश कर रहा था, और मुझे लगता है कि मुझे यह मिल गया है, यह वही है जो मुझे लगता है कि अच्छी तरह से काम करता है;

सबसे पहले, कुछ डॉसक मैक्रो;

DOSKEY cd=cdtilde.bat $* 
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..

और फिर मेरे रास्ते में एक बैट फाइल;

cdtilde.bat

@echo off
if ["%1"]==["~"] ( 
    chdir /D "%USERPROFILE%"
) else ( 
    chdir /D %* 
)

ये सभी ठीक काम करने लगते हैं;

cd ~ (traditional habit)
cd~  (shorthand version)
cd.. (shorthand for going up..)

इस उत्तर में एक .bashrc-type फ़ाइल के साथ CMD शुरू करने का एक तरीका है : superuser.com/questions/144347/… । स्टेप 1. इस उत्तर को bashrc.batफाइल में डालने से यह स्टार्टअप पर सेट हो जाएगा।
ब्रायड्रेन

2

यदि आप जय का छोटा संस्करण चाहते हैं तो आप कोशिश कर सकते हैं

    set usr=%userprofile%
    cd %usr%

यदि आप चाहते थे तो आप % u% का भी उपयोग कर सकते हैं । यह वैसे भी कुछ कीस्ट्रोक्स बचाता है।


2

आप लगभग खुद ही ऐसा कर सकते हैं। पर्यावरण चर खोलें और "उपयोगकर्ता चर के लिए ..." में "नया" बटन पर क्लिक करें।
चर नाम: ~
चर मान: "ब्राउज़ निर्देशिका ..." बटन पर क्लिक करें और एक निर्देशिका चुनें जिसे आप चाहते हैं।

और इसके बाद, cmd खोलें और इसे टाइप करें:
cd% ~%
। यह काम करता हैं।


2

मैंने बस कोशिश की set ~=%userprofile% और वह भी काम करता है अगर आप उसी आदत का उपयोग करते रहना चाहते हैं

आप %~%इसके बजाय उपयोग कर सकते हैं ।


2
आप वास्तव में ~= का मूल्य कैसे निर्धारित करते हैं %userprofile%? मैंने कमांड प्रॉम्प्ट पर आपकी पोस्ट में उल्लिखित सटीक कमांड को चलाया, लेकिन यह त्रुटि फेंकता है - '~' is not recognized as an internal or external command, operable program or batch file.। क्या आप कृपया अपने उत्तर को थोड़ा और विस्तृत कर सकते हैं?
RBT

3
यदि आप उपयोग करते हैं set ~=%userprofile%तो आप %~%चर के लिए उपयोग कर सकते हैं
forresthopkinsa

0

बस, जबकि सेटिंग के रूप में पोर्टेबिलिटी को बनाए रखने के लिए बहुत अधिक बिना लिखे यह करने के लिए एक पटकथा लिखी ~होने के लिए %userprofile%, जबकि क्लोनिंग और के हिस्से के रूप निर्देशिका की स्थापना प्रत्येक विंडोज पीसी पर की जरूरत है एक मैनुअल सेटअप PATHयांत्रिक है।

https://github.com/yxliang01/Snippets/blob/master/windows/



-5

आप सीडी भी कर सकते हैं ...... \ _ कई बार फोल्डर होते हैं जो आपको होम डायरेक्टरी में ले जाते हैं। उदाहरण के लिए, यदि आप cd: \ windows \ syatem32 में हैं, तो cd .... \ _ आपको घर ले जाता है, वह है c: \


2
घर! = c: \ बजाय, मूल पोस्टर C:\Users\usernameफ़ोल्डर के बारे में पूछता है (या c:\Documents and Settings\usernameपहले विंडोज में)
v.karbovnichy

यहां तक ​​कि अगर आप रूट पर जाना चाहते हैं, C:\ तो इसकी बजाय cd \ अनिर्धारित संख्या के उपयोग की सलाह दी जाती हैcd ..\..\..
lcnittl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.