• ベストアンサー

ディレクトリ名をショートファイル名で知る方法は?

こんにちは。 Windows9xなどにおいて、 C:\Program Files\TTERMPRO のように、ディレクトリ名をロングファイル名ではなく、ショートファイル名で書きたい場合というのが出てくることがあります。(バッチファイルを作成しておくなどの時) (例の場合には c:\progra~1\ttermpro になるのかも知れない) DOS窓で dir/s のような見方でファイルではわからなくもないのですが、ディレクトリを知る方法やコマンド等があればアドバイスいただきたく思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.3

dir /A:D でディレクトリのみが表示されます。 またはDOSプロンプト起動してDOSプロンプトにフォルダをドラッグ&ドロップすれば短いファイル名が表示されます。 なお、バッチファイル等では""で括るとロングファイル名も使えます。 CD "C:\Program Files\TTERMPRO" dir /? でDirのヘルプが表示されます。

fkimura
質問者

お礼

ディレクトリの情報だけを得るのは、dir *. でも同様ですよね。 DOSプロンプトにドラッグ&ドロップして得るのは気付いていました。やっぱり皆さんでもその方法が最善なのかも知れませんね。 環境変数などに、ディレクトリの情報を持たせたい場合などで(例えば path=~)などには ダブルクオーツなどで指定する方法が有効なのかは不明でしたので、ショートファイルネームの得方というのは汎用として何かあるのだろう、と思ったのですが。 ご回答いただきありがとうございます。

その他の回答 (3)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.4

お礼に関する回答 >ディレクトリの情報だけを得るのは、dir *. でも同様ですよね。 いいえ違います。例えばフォルダ名が"aaa.bbb"というフォルダの場合これが対象に入りません。 またファイル名"AAAA"と言うファイルが対象になります。 よって私が回答したようにDIR /A:Dとするのがもっとも確かな方法です。 なお""で括るはPATHでも有効ですよ。 但し環境変数の長さの問題で通常はショートファイル名を使います。 以上専門家としての回答でした。

fkimura
質問者

お礼

フォローをありがとうございます。なるほど、ホルダ名にドットがくるのを忘れていました。 そうですか。環境変数上でもロングファイル名で良いのですね。これで逃げようかなと思います。(実際にはバッチファイルではなく、Perlなどを実行するのに必要な部分ではあるのですが。) その他の皆様もアドバイスをありがとうございました。この辺りで締めきらせていただきました。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

例の場合だと(DOS窓で) cd c:\ dir prog* これでprogではじまるファイル/ディレクトリ名がリスティングされます。 その情報からショートファイル名を判別できます。 「ロングファイル名で記述されたパスを一気にショートファイル名へ」という希望なら… 残念ながらわかりません。

noname#1489
noname#1489
回答No.1

ファイルであれ、フォルダであれ、 右クリックからプロパティを開けば、 真中あたりの『MS-DOS ファイル名:』の右側に表示されています。

関連するQ&A

  • コマンドプロンプトからファイル実行について

    コマンドプロンプト初心者です。 説明が下手で申し訳ありませんが、コマンドプロンプトを起動し、C:\Program Filesから辿ってファイルを実行させようとすると、 C:\Programは、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され、できなくて困っております。 パスがないのかなと思い、試行錯誤してみましたがダメでした。 あとDOS窓はコマンドプロンプトのことですよね?

  • ANSI Cでファイル名、ディレクトリ名の取得

    MS-DOSまたはPC-DOS(PC/AT)でANSI Cにて ファイル名、ディレクトリ名の取得するようなプログラムを 作りたいのですが何か言い方法はあるでしょうか?

  • ディレクトリをまるごとコピーしたいのですが(サブディレクトリも含めて)

    バックアップのためにサブディレクトリも含めてすべてのファイルをコピーしたいのですが、コマンドがわかりません。 DOSのバッチファイルでもいいのですが、コマンドを教えて下さい。 よりろしくお願いします。

  • PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラム

    PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラムで「test」というディレクトリ内のファイル一覧(ディレクトリ名とファイル名)を表示するようにしているのですが、この中からディレクトリ名のみ表示させたいのですがどのようにすればいいのでしょうか? よろしくお願いします。 <?php if ($dir = opendir("test/")) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "$file<br>\n"; } } closedir($dir); } ?>

    • ベストアンサー
    • PHP
  • ディレクトリ名を取得したい

    perlでディレクトリ名だけを取得したいのですが、 なかなかうまい方法が見つかりません。 ファイル名を取得する・・・というのは結構あるのですが、 ディレクトリ名だけ、というのがどうもわかりません。 ちなみにファイル名取得は以下のようにやっています。 my $md; opendir(DIR, 'q'); while (defined($dir = readdir(DIR))) { $md=substr($dir,0,6); } closedir(DIR); ディレクトリ名だけを取得・・・というのはどうやればよいのでしょうか。

    • ベストアンサー
    • Perl
  • Windows2000 DOS窓で 行きたいロングネームディレクトリにcdするには?

    どうしたら良いですか。普通に実施すると、cdできません。(例)\>dir で表示される abcdefghijkl というディレクトリに、 \>dir abcdefghijkl と打つと、「ディレクトリの指定が違います」といわれます。 以前、win98や、win95を使用していたときは、DOS窓で、dir すると、abcdef~1 などと短い形式の名称が直接表示されたので、 それを引数に、\>cd abcdef~1と(コピー&ペースト)すればよかったので、便利といえば便利だったと思います。win2000では、DOS窓でdirしても、そのように短い形式で表現されない分だけ、自分で8文字に数えながら~1とかを付けて、手と自分の頭脳で変換する(?)のでしょうか?ロングネームの複数のディレクトリ名の階層の深いdirに行くときなど大変です。 あるいは、win98や95では、エクスプローラが開いているdirで、ダイレクトにDOS窓を開く便利なツール(Tweak UI)がありました。同等のソフトがwin2000用にあれば、それはそれで問題解消です。ご存知の方お教えください。 よろしくお願いします。

  • バッチファイル テキストファイル内の最後の\以下を削除したい

    バッチで、あるテキストファイル内の最後の\以下を削除して、その結果をバッチの値として利用したいです。 ●テスト条件 %TEMP%のtest.txt に以下のテキスト。 C:\Program Files\software\top xyz ●求める結果: 行末から最初の\以下の文字列を削除。この文字列をバッチファイルで使いたい。 C:\Program Files\software\ ●試したコマンド: なし 全体の流れとしては、バッチでquery取得したパスの不要な部分を削除して、求まったパス(のdirの結果を出力するために)を再度バッチで利用したいです。適切なコマンド・方法がありましたらお願いいたします。

  • DOSコマンドでカレントディレクトリのディレクトリ名を一括取得

    DOSコマンドでカレントディレクトリのディレクトリ名を一括取得 DOSコマンドにて、カレントディレクトリ名を取得するのは、 for %I in (.) do set DIRNAME1=%~nI%~xI このようなコマンドでできると思います。 しかし、DOSコマンドにて「カレントディレクトリの中のディレクトリ名」を 一括取得して、複数の変数に保存する方法がわかりません。 以上、よろしくお願いします。

  • Excelのマクロでファイル情報の取得方法(更新日付情報付)

    現在Excelのマクロで 「指定フォルダの中のファイルで指定日より前のファイルを自動削除する」 マクロを作成中なのですが、現在指定ディレクトリ内のファイル情報の取得の部分で困っています。 ・dir() ではファイル名は取れるが(私の調べた限りでは)日付情報が取れない ・shellでdirコマンドを発行しようとすると、ディレクトリがロングファイルネームでひっかかってしまい、そのままではエラーになる。 例【shell("command.com /c dir c:\Documents and Settings > 結果.txt")】 といった状態です。 最悪ロングファイルネームをすべてDOSルールに変換してshellコマンドで発行するテもあるかと思いますが、略時に同じ名前が重ならないか(mydocu~1で良いのかmydocu~2になるのか)等で管理が煩雑になりそうです。 マクロ上でファイル名と最終更新日付を取得できる方法がご存知の方がいらっしゃいましたら教えてください。 尚、指定ディレクトリ名の取得~削除の実行、ログの作成あたりは殆ど出来上がっています。

  • ディレクトリ以下のファイル名を取得する

    ディレクトリ名を指定するだけで、 そのディレクトリ内にある全てのデータファイルを 読み込んで処理するプログラムをC++で作ろうと考えています。 その為に、ディレクトリ以下のファイルのファイル名を 取得する方法(命令)を教えて頂きたく思います。 よろしくお願いします。