WindowsでのLinuxの「〜」(チルダ)と同等のものは何ですか?


72

Linuxでは、次の~後にチルダ()文字を入力することにより、ユーザーのホームに移動できますcd

cd ~

Windowsで同じことをする方法は?

毎回、次のように入力する必要があります。

cd C:\Document and Settings\freewind

それはあまりにも退屈です。


2
cygwinの使用を検討しますか?
ポールR

8
実際には、「〜」ので、ほとんどのLinuxのシェルの下の「CD」のデフォルト、単に「CD」は、あなたのホームディレクトリに移動するには十分である


4
答えは単に「cd〜」です。つまり、Windowsでも同じコマンドを使用できます。ただし、CMDでこのコマンドを試してはいけません。これは、このコマンドが時代遅れであり、Microsoftによって開発が中止されているためです。「Windows PowerShell」を使用すると、同じコマンドがスムーズに機能します。
アップルII

3
PowerShellにはWin7 +が同梱されています
Isaac Dontje Lindell

回答:


43

cd /d "%HOMEDRIVE%%HOMEPATH%" それを行うだろう-しかし、私はあなたがそれを改善とみなすかどうかわからない。

上記のコマンドのエイリアスを定義することもできます。

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

この後、それは単にcdhomeです。


4
@Freewind:デフォルトのWindowsシェルが大好きです。
ジョン

10
@abatishchev:いい質問です。SFに関するこの質問は、%USERPROFILE%が望ましいことを示しているようです。
ジョン

3
cdhomeの代わりに、cd〜をマクロ名として使用することもできます。
-jftuga

3
@abatishchev:Windows NTアカウントには、「プロファイルディレクトリ」とは別の「ホームディレクトリ」パスを添付できます。プロファイルには、設定(レジストリ)、アプリケーションデータなどが保持されます。一方、ホームディレクトリは独自のファイル用ですプログラムが初めて[開く/保存]ダイアログを表示すると、ホームディレクトリから起動します。(Windows 95/98の使用方法は多少異なります。詳細を思い出せません。)これは、ネットワーク共有にファイルを保存するがプロファイルをローカルに維持するActive Directory環境で役立ちます。
-grawity

2
@jftuga:または~
-grawity

62

cd /d %USERPROFILE%cmdを使用する場合に使用できます。

または、cd ~PowerShellを使用する場合に使用できます。


4
+1はなく、変数(多分それはだ前後に引用符を追加しc:\documents and settings\...、それが引用されていますしない限り、スペースがそれを破るだろう)
ジョン

7
@Jon:cdは例外です。常に単一の引数を取るため、引用符は必要ありません。(Windowsでは、プログラムとビルトインはコマンドライン自体を解析する必要がありますが、シェルは解析しません。)ただし、常にパスを引用すること良い習慣です。
-grawity

1
@barlop:通常CommandLineToArgvW() ; CLR / MinGW / Cygwinランタイムも、main()を呼び出す前に自動的に同等の独自のランタイムを使用します。ただし、一部のプログラムには、パーサーが完全にゼロから作成されています。たとえば、cmd.exeそれ自体とその奇抜なもの/cです。
grawity

1
@barlop:指定されたコマンドの一部として引用符(またはリダイレクト)を使用しようとしている場合ではありません。それ/c "C:\foo bar\baz" "my file.txt"か、/c "\"C:\foo bar\baz\" \"my file.txt\""それとも/c ""C:\foo bar\baz" "my file.txt""?何さらに悪いのは、構文解析がいるかどうかに依存していることである/s実行ファイルが命名されているかどうか、それ以前の特殊文字の存在を指定されたC:\foo bar\bazか、単にC:\foo...
grawity

1
@TheLQバッチスクリプトはさらに簡単です。単一の文字を入力することで同じ結果を達成できます。以下の説明を参照してください。
weberc2

13

1つの可能性はsubst、コマンドプロンプトからコマンドを使用することです。

subst z: C:\Document and Settings\freewind

Z:ドライブに移動すると、ユーザーフォルダーが表示されます。

マイナス面は、ログインするたびに実行する必要があることです。バッチファイルを使用して、それをスタートアップフォルダに入れるだけですが、おそらくこれにはもっとエレガントなソリューションがあります。

利点は、doskeyエイリアスとは異なり、コマンドプロンプトでディレクトリを変更するときだけでなく、普遍的に機能することです(windows explorer、browseダイアログなど)。これは、「デスクトップ」ではなく最上位レベルにドライブ文字がある古い参照ダイアログを持つ古いプログラムに特に役立ちます。


ドライブをマップし、ログイン後に自動的に再マップすることができます。substを使用する必要はありません
phuclv

1
@LưuVĩnhPhúc完全に論理的ではないかもしれませんが、実際に使用する必要がない限り、Windowsネットワーク共有を避ける傾向があります。パフォーマンスと信頼性は...予測不可能だと思いますか?代替手段があれば、もっと良い方法でそれを行う方法があれば、みんなの利益のためにそれを独自の答えに投稿してください:)
mo。

6

あなたはこれを行うことができます:

cd %homepath%

5
別のドライブを使用している場合、これは壊れます-たとえば、オンE:でhomedirがオンの場合C:
-Piskvor

4

~.bat含むというバッチファイルを作成できます。

@echo off
cd /d %USERPROFILE%

それをPATH変数に追加します(スタート-> [[コンピューター]を右クリック]->プロパティ-> "システムの詳細設定" [左の列]-> "環境変数"

そこから、PATH変数を編集して、~.batファイルを含むフォルダーを含めます。(これにより、ファイルへの絶対パスではなく、ファイル名のみを使用してどこからでもスクリプトを呼び出すことができます)

また、PATHEXT環境変数に.BATどこかが含まれていることを確認してください(これにより、の~代わりに入力できます~.bat)。

使用する必要がある場合~は、コマンドプロンプトで入力するだけです。このソリューションは永続的です。シェルを起動するたびにセットアップする必要はなく、レジストリをハッキングする必要もありません。


2

残念ながら、私は完璧な解決策を知りませんが、いくつかのハッキーなオプションがあります:

オプション1:〜をdoskeyでコマンドエイリアスに設定する

doskey ~=cd /d %USERPROFILE%

これにより、単に入力~して、homedirにchdir することができます。

C:\>~
C:\Users\a>

明らかに、これは家に帰るまでのキーストロークの数を短縮しますが(Linuxと比較しても)、別のパスの一部として実際に使用したり、単に家に帰るだけでそれ以上のことをしたりできないため、堅牢性は低くなります。

オプション2:〜を変数に設定

別のオプションとして、より堅牢なオプションが必要な場合は、変数を設定します。

set ~="%USERPROFILE%"

しかし、これを使用すると次のように使用されます。

E:\>cd /d %~%
C:\Users\a>

また、ほとんどのパスに挿入することができ、単に家にcd 'することに制限されません。

両方のオプションを同時に

また、両方のメソッドを同時に実装できます。周りに%があれば、変数を利用します-そうでなければ~、コマンドとして扱います。

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

もう1つのヒント(やや関連):

追加のキーストロークを節約するために、これは少なくとも自宅のPCでは企業のマシンでは受け入れられそうにありませんが、%USERPROFILE%dirを単純な名前にすることは悪い考えではありません。上記の私の例からわかるように、私のユーザーディレクトリはC:\Users\a-私はいつも「aplocher」または「adamp」を持っていましたが、1文字に変更したときは魔法でした。


1

Powershellでは、%variable%構文は機能しません。あなたはこれを行うことができます :

cd $env:USERPROFILE

2
cd ~PowerShellで使用できます。
wjandrea

0

PowerShellを使用して、次の方法を試して、ユーザー名がわかっていて、ファイルディレクトリのアクセス許可が付与されている場所からディレクトリを移動できます。

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

PowerShell(64ビット)の例を参照してください。これをWindows 7 Pro 64ビットボックスでテストしました。

Windows 7 Pro 64ビットのLinux Lildeに相当

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.