ショートネーム(8dot3)を強制的に生成する方法は?


9

私はwindows windows shortnamesに問題があります。「Program Files」および「Program Files(x86)」の短縮名が生成されないように見える場合があります。

fsutil behavior query disable8dot3 C:システム全体の設定が2(ボリュームごと)であり、ローカル値が0(8dot3の名前を作成する)であることを示す短い名前の生成が有効になっていることを確認しました。

おおよそ次のようになります(これはドイツの32ビットコピーです)。

C:\>dir /a /x

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>          PROGRA~1     Program Files
08.11.2013  21:58    <DIR>          PROGRA~2     ProgramData
09.01.2011  15:35    <VERBINDUNG>   PROGRA~3     Programme [C:\Program Files]
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

ただし、別のマシン(64ビットコピー)では、C:> dir / a / xのようになります。

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>                       Program Files
26.11.2013  17:31    <DIR>                       Program Files (x86)
08.11.2013  21:58    <DIR>                       ProgramData
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

お気づきの方もいらっしゃるかと思いますが、プログラムフォルダの短縮名はありません。

問題は、いくつかの古いスクリプトにこれらの短い名前が必要になるため、それらをどのように生成するかです。で試しましたfsutil file setshortname "Program Files" "PROGRA~1"が、これは私に与えてくれAccess denied.ます。


Windowsが短縮名を再生成する方法を知る唯一の方法は、ディレクトリをコピーして元のディレクトリを削除することです。もちろん、それはにはうまくいきませんProgram Files。スクリプトを調整することはできませんか?また、スクリプトがProgram Files-directoryを常に考えていないことを願っています。これが当てはまるPROGRA~1場合、短い名前が常に同じではないため、最終的にスクリプトが深刻な問題で実行されるためです。また、スクリプトを(短い名前ではなく)長い名前のfindfirstなどにアップグレードするように依頼することもできます(可能な場合)。
Rik

私は短い名前の問題を認識しており、それらのスクリプトを自分で書くことはありません。私は常にこのために環境変数を使用します(%programfiles%)。名前の変更は実際には機能しません。多分私はオフラインからこれを行うことができますか?回避策になる可能性があります。
pgampe 2013年

コマンドを管理者として実行してみましたか?既存のディレクトリに8.3の名前を作成する
phuclv 2017年

承知しました。それは動かなかった。
pgampe

回答:


5

コメントで言ったように... Windowsが短縮名を再生成する方法を知る唯一の方法は、ディレクトリをコピーして元のディレクトリを削除することです。(「Program Files」ディレクトリでは実行できません。)

長いファイル名とフォルダー名を使用するようにスクリプトを変更することをお勧めします。スクリプトがPROGRA~1それを使用する場合、ドライブが複製された方法でドライブが複製されたインストールで問題が発生します。たとえば、ProgramDataが最初にディスクにコピーされた場合、名前が付けられPROGRA~1Program Filesという名前が付けられPROGRA~2ます。

今のところスクリプトを機能させるオプションがあります

からまでのディレクトリジャンクションを作成できます。そうすれば、スクリプトは機能し続け、スクリプトを変更する時間があります。PROGRA~1C:\Program Files

mklink /J "C:\PROGRA~1" "C:\Program Files"

の出力mklink /?

Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

ディレクトリジャンプを使用するのは良い考えです:)
pgampe '29

変更はmklink永続的に行われますか、それとも実行中のバッチスクリプトで機能しますか?申し訳ありませんが、シンボリックリンクとジャンクションについての十分な情報がありません。
Alireza Mohamadi 2018年

@AlirezaMohamadiで行われた変更mklinkは永続的です。のようにmkdir
Rik

9

プログラムファイルの短縮名(8dot3)を定義するには、次の手順を実行します。

  1. コンピューターを再起動
  2. cmdプロンプトでセーフモードでブートを開始すると(私のコンピューターではF8)
  3. ログインする
  4. コマンドプロンプトから次のコマンドを入力します

    fsutil 8dot3name query
    fsutil behavior set disable8dot3 0
    fsutil file setshortname "Program Files" PROGRA~1
    dir /X
    

プログラムファイルに定義された短縮名が表示されます。必要に応じて、8dot3nameの動作を、クエリcmdによって返された元の設定に戻します。


2
FWIW-このためにコンピュータを再起動する必要はありませんでした。また、異なるドライブで8.3を選択的に有効/無効にすることができます。これらすべての設定のレジストリの場所は、HKLM:\ System \ CurrentControlSet \ Control \ FileSystem \ Ntfs *です。support.microsoft.com/en-us/kb/121007を
Coruscate5

はい、私はちょうど私があった場所滞在しました:
マイクMounierに
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.