- ベストアンサー
コマンドプロンプトに詳しい方
複数のファイルを一度に移動したいのですが可能ですか? move A.exe B.exe (移動先) このスクリプトではエラーとなりました。 *.exeでは移動したくないファイルまで移動してしまうので駄目です。 del A.exe B.exe だとエラーは起きず、希望のファイルだけ消すことはできました。 削除は可能なのに移動やコピーは不可なのでしょうか? 環境はXPでした。 よろしくお願いします
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
move A.exe,B.exe (移動先) こうしましょう
その他の回答 (6)
- bunjii
- ベストアンサー率43% (3589/8249)
>複数のファイルを一度に移動したいのですが可能ですか? MS-DOSとWindows NT系のコマンドプロンプトは異なるものです。 MS-DOSでは複数のファイルをカンマで接続して1回のMOVEで移動できますが、Windows NT系のコマンドプロンプトでは1回に1ファイルしか指定できません。 但し、?や*のワイルドカードを使用して複数ファイルを指定することは可能のようです。 Windows 9x系のOSではMS-DOSが基盤になっていますので、「スタート」→「プログラム」→「MS-DOS プロンプト」で所謂DOS窓が開きますが、これは明らかにMS-DOSそのものです。 従って、Windows 9x系の「MS-DOS プロンプト」では1回のMOVEコマンドで複数のファイルを移動することができるはずです。 Windows NT系のコマンドプロンプトのヘルプ機能はMS-DOSのヘルプを転用していると思われますので修正漏れと推測します。
お礼
ありがとうございました
- vaidurya
- ベストアンサー率45% (2714/5983)
単独のコマンドとしてはできません。 条件によっては、簡略化する手段はありますが バッチファイルなどでうまくやる必要があるかもしれません。 実際にあA.exeとB.exeが対象で、ほかにあるファイルが AA.exeやBB.exeであれば move ?.exe (移動先)で行けるような気がします。 移動先が決まっているなら そういったコマンドを用意してもいいでしょう。 MS-DOSの全盛期には、そういった問題に対しては 出射氏のFDなどのファイル管理ユーティリティを用いていました。 それがWindows95以降のLFNが一般化したあと どうなっていったかは知りません。 ともかく、コマンドラインでのファイル操作は、正規表現と スクリプト処理で対処できない部分は こういったソフトで補わないと、それなりに無理が出てきます。 (cmd.exeでの正規表現の扱いは知りません。PowerShellへの移行を検討してもいいのかもしれません) よく、CLIとGUIの対比を CUIとGUIの対比として書かれることがありますが 実際にはCLIでは無いCUIソフトウェアも重視される場合があります。 Linux系OSではFDを模倣したfdcloneが今でも使われています。 ただし、動作速度等には不満が出ることがあるようです。 その原因がどこにあるのかは知りませんし 私自身は、ほとんど使っていませんけどね。 余談ですが、コマンドプロンプトとはコンピューター用語としては CLIにおいて、入力を促す(入力待ちを示す)文字列を指します。 Windowsではなぜか、CLIを提供するcmd.exeのことをコマンドプロンプトと呼び コマンドプロンプトのことをプロンプトと呼んだりする珍奇な風習があります。 (MS-DOS時代には、コマンドプロンプトという言葉にそんな意味は無かったんですけどね) cmd.exeは、MS-DOSより古い、1970年代からあるUNIX等のCLI環境に比べると 進化が異常に遅く、制限が多く、機能的に原始的なもので在り続けて来ました。 反面、Windows Serverではサーバー特有のCLIからの管理作業などを想定して コマンドラインで行える作業は大幅に拡充が薦められてきました。 現在では、Windows PowerShellが、オプショナルなCLIシェルとして用意されています。 https://ja.wikipedia.org/wiki/Windows_PowerShell 正規表現とは、複数のファイル名や文字列などをまとめて指定したり 通常のコマンドラインで使えない記号などを扱うために使われる表記方法のことです。 文字列処理では、行頭や行末を指定した書式だけでも非常に役立ちます。 ワイルドカードとして知られるアスタリスクも、正規表現の一種ですが MS-DOSおよびcmd.exeでは正規表現の利用は整備されていなかったと認識しています。 https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE 私自身は、不定のファイル名の大量のファイルを一括処理する場合は (複雑なスクリプトを書くと、そのバグが怖いので) テキストエディターで行頭指定と行末指定を使い 一括して、前後にコマンドやオプションや移動先などを付け足して 順次処理するだけのスクリプトにして実行したりします。 たとえば、a.tsをa.aviに変換したら DIR *.avi>削除.batして 削除.batをテキストエディターで開いて 行頭にmove を、末尾に移動先ディレクトリーを付けて移動させたりできますし .行頭にdeleteを付けて、avi(行末)を.tsに変換して 自動的に、aviファイルに変換済のtsだけを削除するような運用ができます。 実際には、それをLinux系OSでやっているので mvとかrmといったコマンドを使っていますけどね。
お礼
ありがとうございました
- -9L9-
- ベストアンサー率44% (1088/2422)
コマンドプロンプトのコマンドの使い方がわからなければ「/?」オプションで使用法(文法)が表示されます。 move /? とすればMOVEコマンドの解説が表示されます。まずはそれを確認してください。 その解説にあるとおり、MOVEコマンドにおいては、引数が二つの場合、先の引数のファイル名を後の引数に名称変更するというコマンド(命令)になります。したがって、 move A.exe B.exe と打てば、A.exeという名前のファイルをB.exeという名前に変更する指示なのであり、MOVEコマンドには引数3つ(またはそれ以上)という文法はありませんので、その後にさらに移動先フォルダ名を打ったら間違った文法ですからエラーになるのは当然です。
お礼
ありがとうございました
- ts0472
- ベストアンサー率40% (4486/11070)
OSに搭載されているDOSバージョンによってさまざまなようですね 下記URLのMOVEを参照 http://www.x-net.nu/technical/win_com/t_win_com-f_d.html#10 Me/98/95は複数ファイル名の指定が可能であったが 現在は1つのファイルしか移動できない エクスプローラーの方が簡単 書式を間違えるとファイル名変更 削除されてしまったのかも知れませんね という事で XPから複数ファイルの指定は無効になっている
お礼
ありがとうございました
- Pcworks
- ベストアンサー率35% (64/179)
>コマンドプロンプトに詳しい方 コマンドプロンプトはMSDOSの入力待ち状態を指すので”MSDOSに詳しい方”が適切な表現と感じます。 以下にMSDOSのコマンド一覧表があります http://www.geocities.co.jp/SiliconValley-PaloAlto/2099/ms-dos.html >move A.exe B.exe (移動先) move A.exe 移動場所(例えばD:\)となりA.exeをB.exeに移動はできないのでエラーになります。 >del A.exe B.exe これは単純にA.exeとB.exeをdel(消す)ことなので実行されます。 >削除は可能なのに移動やコピーは不可なのでしょうか? 使い方が違っているので移動やコピーはできますがMSDOSでWindowsのファイルを扱う場合ディレクトリーが違うとpathの指定が問題になります、Windowsで扱ったほうが安全で確実の確率が高いです。 MSDOSは基本的なオペレイションシステムでWindowsの土台のようなものですのでdelコマンドで消せば元には戻せませんある程度の知識を身に着けて扱うことを薦めます。
お礼
ありがとうございました
- kamikami30
- ベストアンサー率24% (812/3335)
特に詳しくはありません。 moveとdelは違うコマンドなんだから、使い方も違うのが当たり前です。 知らないものをちょっと知ったくらいで、すぐに同じものと考えるのはやめましょう。 コマンドラインの引数は、順序に意味があります。 moveなら どこからどこへと言うのが基本です。 そのコマンドのヘルプを見ても良いですが、そのコマンドを検索すれば、オプションに加えて実例の説明まで書いてあるサイトがわんさかあります。 私は知っていてあなたは知らない。 私も最初は知りませんでしたが、知るようになったのは調べたからです。 とりあえず、ものすごく簡単に見つかるので、まずは調べて下さい。
お礼
ありがとうございました
お礼
ありがとうございました