末尾にスペースがあるディレクトリを作成するにはどうすればよいですか?

末尾にスペースがあるディレクトリを作成するにはどうすればよいですか?

私は Windows 7 を使用していますが、自分では制御できない理由により、1 つのスペースで終わるディレクトリを作成する必要があります。このディレクトリには、さまざまなファイルとサブディレクトリが含まれます。

md私も UNC パスを使用してと を試しましたrenameが、'構文が正しくありません' と表示されるか、多くの場合、単にスペースが無視されて失敗しました。

どうすればいいですか?

答え1

Windows で末尾にスペース文字を含むディレクトリを作成するには、コマンド プロンプトを開いて次のように入力します。

md "\\?\C:\mydirectory "

ディレクトリは絶対ディレクトリ(相対ディレクトリではない)でなければならず、\\?\

同様にrdコマンドでディレクトリを削除できます。

rd "\\?\C:\mydirectory "

ただし、このコマンドでディレクトリを削除する前に、ディレクトリが空である必要があります。

答え2

Cygwinは

$ mkdir 'abcde'

$ mkdir 'abcde '

$ mkdir 'abcde  '

$ ls -l
total 0
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde
drwxr-xr-x+ 1 user None 0 May 15 17:11 abcde

3つの異なるディレクトリがあるので明らかに機能していますが、さらに何らかの証拠を得てみましょう。

$ echo * | xxd
0000000: 6162 6364 6520 6162 6364 6520 2061 6263  abcde abcde  abc
0000010: 6465 2020 0a                             de  .

6162 6364 65 20<---- that's the dir abcde, and echo * put a space in after as there is another item it lists.

6162 6364 6520 20 <-- that's the dir 'abcde ', and echo * displayed it with a space in as there is another item it lists

61 62636465 2020 0a  <-- that's the dir 'abcde  ', and echo * displayed it followed by new line(0a)

別の

lsは縦書きやカンマ付きなどの書式設定オプションを提供します。

--format=WORD
       across -x, commas -m, horizontal -x, long -l, single-column  -1,
       verbose -l, vertical -C

--

$ ls -m
abcde, abcde , abcde

カンマの前のスペースに注意してください。これは、スペースがファイル名に含まれているためです。「,」は書式設定です。ただし、「,」は、スペースがファイル名に含まれていることを示します。

$ ls -m | xxd
0000000: 6162 6364 652c 2061 6263 6465 202c 2061  abcde, abcde , a
0000010: 6263 6465 2020 0a                        bcde  .

--

検証のためにヘックスを見る必要もなく、非常に明確なデモンストレーションは、

$ mkdir 'abcde           '


$ mkdir z


$ ls -m
abcde, abcde , abcde  , abcde           , z


$

Mafuがコメントで述べているように、別の方法はMingwです。MingwにはMingMackageマネージャにインストールできるMsysパッケージがあり、msysはC:\MinGW\msys\1.0\bin>mkdir.exeなどの多くのコマンドをインストールし、bash.exeもあります。

答え3

Windows でサポートされていないファイルを作成すると、通常の方法では削除できなくなる可能性があることに注意してください。

LinuxインストールまたはライブCDを起動し、このコマンドを実行します

mkdir "<mountpoint>/dirname"

引用符が必要になります。

削除方法についてはこちらをご覧ください

関連情報