回答:
次のことができ%HOMEDRIVE%%HOMEPATH%
、ドライブのための+ \docs settings\username
または\users\username
。
これを行うには、%systemdrive%%homepath%
環境変数を使用できます。
2つのコマンド変数を連結すると、次のように目的のユーザーのホームディレクトリパスが得られます。
echo %systemdrive%
コマンドプロンプトで実行すると、次のようになります。
C:
echo %homepath%
コマンドプロンプトで実行すると、次のようになります。
\Users\<CurrentUserName>
一緒に使用すると、次のようになります。
C:\Users\<CurrentUserName>
%systemdrive%
が%homedrive%
言及したものと同等の環境変数について言及するのを忘れていました。何か問題を見つけた場合は、フィードバックをお寄せください。
更新- 2019年7月18日より良いバージョン。
最終的な要約、とにかくほとんどのWindowsコンソールの動作をPowershellに移行しましたが、この古いcmdの問題をまとめることに決めましたが、今日cmdコンソールにアクセスする必要があり、この機能の欠如に本当に悩まされました。これは最後にスペースでも機能しますが、私の以前の答えは失敗します。
さらに、これは〜を他のホームサブフォルダーのプレフィックスとしても使用できるようになり、スラッシュをバックスラッシュに交換します。だからここにあります。
ステップ1.これらのdoskeyマクロを作成します。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")
ああ、また、スペースパスがフォルダーパス名に含まれている場合でも、私が便利だと思った遅延引用を可能にします。つまり、最初の引用だけでも機能するか、完全に引用なしでも機能します。
以下の他のすべてのものは無視される可能性があります。これは歴史的な理由により残されているため、同じ間違いを繰り返さない
古いアップデート 2018
年10月19日。他の誰かが私のアプローチを試みた場合、以下の私の元の答えはスペースを処理しませんでした。
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
それを解決する方法があるに違いないと思います。回答を改善できる場合は、再度投稿します。(上記を参照して、最終的にすべてを思い通りに機能させることができました。)
私の元の答え、まだ必要な作業... 2018年10月7日。
私は今日それをやろうとしていました、そして私はそれを手に入れました、これは私がうまくいくと思うものです。
まず、いくつかのドスキーマクロ。
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
次に、私のパスにあるbatファイル。
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ファイルで開始する方法があります:superuser.com/questions/144347/…。この回答のステップ1.をbashrc.bat
ファイルに入れると、起動時に設定されます。
私が試したところset ~=%userprofile%
、同じ習慣を使い続けたいならそれでもうまくいきます
その後、%~%
代わりに使用できます。
~
= の値を正確にどのように設定します%userprofile%
か?コマンドプロンプトの投稿に記載されているとおりのコマンドを実行しましたが、エラーがスローされます- '~' is not recognized as an internal or external command, operable program or batch file.
。もう少し詳しく答えてください。
set ~=%userprofile%
使用でき%~%
ます
設定~
を機械的に行う%userprofile%
ためにディレクトリを複製および設定する際に、各Windows PCで手動設定が必要になるため、移植性を維持しながら、入力を多用せずにこれを行うスクリプトを記述しただけPATH
です。
また、ホームディレクトリに移動するフォルダーの数だけcd ... \を実行できます。たとえば、cd:\ windows \ syatem32を使用している場合、cd .... \を実行すると、自宅、つまりc:\に移動します。
C:\Users\username
フォルダ(またはc:\Documents and Settings\username
以前のWindowsの場合)について尋ねます
C:\
に使用するcd \
ことをお勧めしますcd ..\..\..