人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

禁則文字のファイル名を付けたい!環境はWindowsXP。"をファイル名の一部に入れたいと思っているのですが、どうもうまくいきません。Dos・VBSなどでうまくできないかな?教えていただきたくよろしくお願いします。

●質問者: harunoharuno
●カテゴリ:コンピュータ
✍キーワード:DoS VBS WindowsXP ファイル 環境
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● takosan
●40ポイント

無理にファイル名にした場合OSがちゃんと扱えない文字なので、

その後読み出しも消去も移動もできないファイルができちゃいます。

ただのドライブ中のゴミにしかなりませんよ。

http://tinyurl.com/28quta

作るには、OSに無断でディスクのファイル管理エリアを書き換える事のできるソフトが必要です。

昔のMS-DOS時代にはフロッピー等のメディアのディレクトリエリアを直接書き換えるソフトがありましたね。

エコロジーとか、MS-DOS標準添付のdebug.exeでもできましたっけ。

◎質問者からの返答

>>後読み出しも消去も移動もできないファイルができちゃいます

実際にそうなるのか気になります。変なファイル名を付けた結果を説明したHPなどありましたら教えてください。実体験ならそれもコメントしていただけるとうれしいです。

>>debug.exe

そこまでしないとできないものなのですか・・・。ちょっと難しそう。もっと気軽にできたりしないのかな?必要性が高まったらチャレンジしてみます。


2 ● y-kawaz
●40ポイント

それらの文字を付けたファイル名を仮に作成できたとしてもそのファイル名で扱うことは出来ないので作れてもあまり意味が無いと思います。

ここでは Windows ではなくとりあえず Linux 上で hoge" などというファイル名を作って、ファイル共有経由で Windows でそのファイルがあるフォルダを開くと、_2X68Q~5 や HBRZRO~Y などというショートファイル名で表示されるのでなんだか分らなくなってしまうことが分ります。

またそのショートファイル名をアプリケーションによっては開くことが出来ますが、開けないことも多いです。また開けても上書き保存も出来ない状態になったりします。


素直に全角のダブルクオートを使うなどを落としどころとするのが良いと思います。

http://q.hatena.ne.jp/answer

◎質問者からの返答

禁則文字を使ったときにどうなるのかが具体的に書かれているのは参考になります。プログラムの動作テストに、"文字を含むファイル名を使いたかったのですが無謀なようですね。


3 ● KUROX
●40ポイント

FDでFATで作るのなら、リスクも低いし、作るのも簡単だと思います。

ファイル名が書かれている領域を無理やり書き換えたら、出来るはずです。

http://www.vector.co.jp/soft/dos/util/se043892.html

この辺のツールで作れると思われますが・・。

dirコマンドでファイル名は見れた記憶がありますが・・。

昔のMS-DOSの話で、現在の実装がどうなってるか不明なので、どうなるかは

分かりません。


4 ● ardarim
●80ポイント ベストアンサー

どうしても試したいのであれば、仮想ディスクを使用して試すのが安全だと思います。

仮想ディスクは必要最小限の機能が完備されたFileDiskがお勧めです。


(0)FileDiskのインストール

filedisk.sys を C:\windows\system32\drivers にコピーする

filedisk.reg をダブルクリックし、レジストリを追加する

再起動する


(1)仮想ディスクを作成(&マウント)する

C:\>filedisk /mount 0 C:\temp\filedisk.img 8M x:

この例では仮想ディスク x: ドライブをマウントし、8MBの実体ファイル C:\temp\filedisk.img を作成します。


(2)仮想ディスクをフォーマットする

C:\>format /fs:fat x:

(3)仮想ディスク上に適当なファイルを作成する

C:\>echo test > x:\test.txt

(4)仮想ディスクをアンマウントする

C:\>filedisk /umount x:

(5)実体ファイル(C:\temp\filedisk.img)をバイナリエディタで編集し、ファイル名を " を含んだものに変更する

変更前

00004000 54 45 53 54 20 20 20 20 54 58 54 20 18 6A 18 02 TEST TEXT .j..
00004010 5B 37 5B 37 00 00 19 02 5B 37 02 00 07 00 00 00 [7[7....[7.......

変更後(TEXT.TXTの先頭1文字を " に変更)

00004000 22 45 53 54 20 20 20 20 54 58 54 20 18 6A 18 02 "EST TEXT .j..
00004010 5B 37 5B 37 00 00 19 02 5B 37 02 00 07 00 00 00 [7[7....[7.......

(6)仮想ディスクを再マウントする

C:\>filedisk /mount 0 C:\temp\filedisk.img x:


実行結果(例)

C:\>dir x:
 ドライブ X のボリューム ラベルがありません。
 ボリューム シリアル番号は 541A-FC5C です

 X:\ のディレクトリ

2007/10/27 00:16 7 "est.txt
 1 個のファイル 7 バイト
 0 個のディレクトリ 8,353,792 バイトの空き領域

削除もコピーも何にもできないファイルができました(笑)

◎質問者からの返答

大変細かく作成方法を教えていただきありがとうございます。しかし、、

かなり手間がかかるんですね。今回は、試験の都合上できたらいいなと思いましたが、

OSのファイル制御が効かなくなるほどアブノーマルな状態のようですので別の方法を検討します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ