ラベル DOSコマンド の投稿を表示しています。 すべての投稿を表示
ラベル DOSコマンド の投稿を表示しています。 すべての投稿を表示

2008年12月18日木曜日

Windows[DOS]でのサブディレクトリを含むファイル移動

Windows の場合、ファイルの移動の基本は MOVE なんですが、*.txt だけとかしたい場合で、かつ、サブディレクトリがある場合は、MOVE ではダメです。

なので、COPY と DEL (ERASE) で実現します。

まず、特定の拡張子のファイルを複写します。以下は、サブディレクトリも含むディレクトリ A 配下にある拡張子が txt のファイルを、ディレクトリ B 配下に移動する例です。

xcopy .\A\*.txt .\B\ /S /I
次に、コピー元の特定の拡張子のファイルを削除します。以下は、コピー元のサブディレクトリも含むディレクトリ A 配下にある拡張子が txt のファイルを削除する例です。
erase /S /Q .\A\*.txt

2007年11月27日火曜日

ディレクトリ構造を保持して特定のファイルをコピー

あるディレクトリ配下にある特定のファイルをディレクトリ構造を保持したままコピーしたい場合、以下のコマンドでコピーします。

xcopy .\dir1\*.txt .\dir2 /s /i
‘.\dir1’にある‘*.txt’を‘.\dir2’にコピーします。

/s でサブディレクトリもコピー対象とし、/i で、dir2 がディレクトリであることを明示します。/i を指定しないと、以下の様に dir2 がファイルかディレクトリかを問合せるメッセージが表示されます。
.\dir2 は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)?
特定種類のファイルを配布したりする場合に便利です。

/EXCLUDE: で、ファイル名を指定すると、そのファイル名を除いてコピーされます。例えば、WindowsXPなどで、‘Thumbs.db’などの不要なファイルをコピーしないようにする場合に便利です。
xcopy .\dir1\*.txt .\dir2 /s /i /h /EXCLUDE:text.txt
text.txtには、予め以下の様に記述しておきます。
Thumbs.db
.bak
Thumbs.dbとエディタなどが作成する.bakという拡張子のファイルはコピーしない指定になります。

2007年11月26日月曜日

特定の名前のファイルを削除

特定の名前のディレクトリ配下を削除 の関連です。

今度は、Windowsのコマンドプロンプトで、特定の名前のファイルを削除するコマンドです。

for /r %i in (*.txt) do del %i
でも、よくよく考えると、ファイル削除の場合は、以下のコマンドでもOKです。
del /s /q *.txt

2007年11月19日月曜日

特定の名前のディレクトリ配下を削除

Windowsのコマンドプロンプトで、カレントディレクトリ配下の特定の名前のディレクトリ配下を削除するコマンドです。

for /d /r %i in (abc*) do rd /s /q %i
FOR文を使用します。‘/d’は指定している‘abc’がディレクトリであることを示しています。‘/r’はカレントディレクトリからサブディレクトリを回帰的に検索して、対象のディレクトリを探します。

見つかったディレクトリをRDコマンドで削除します。

WindowsXPのヘルプによると、%iは、以下の様に変換(置換)できるようです。
  %~I         - すべての引用句 (") を削除して、I を展開します。
  %~fI        - %I を完全修飾パス名に展開します。
  %~dI        - %I をドライブ文字だけに展開します。
  %~pI        - %I をパス名だけに展開します。
  %~nI        - %I をファイル名だけに展開します。
  %~xI        - %I をファイル拡張子だけに展開します。
  %~sI        - 展開されたパスは短い名前だけを含みます。
  %~aI        - %I をファイルの属性に展開します。
  %~tI        - %I ファイルの日付/時刻に展開します。
  %~zI        - %I ファイルのサイズに展開します。
  %~$PATH:I   - PATH 環境変数に指定されているディレクトリを
                検索し、最初に見つかった完全修飾名に %I を
                展開します。
                環境変数名が定義されていない場合、または検索
                してもファイルが見つからなかった場合は、この
                修飾子を指定すると空の文字列に展開されます。
  %~dpI       - %I をドライブ文字とパスだけに展開します。
  %~nxI       - %I をファイル名と拡張子だけに展開します。
  %~fsI       - %I を完全なパスと短い名前だけに展開します。
  %~dp$PATH:I - PATH 環境変数に指定されているディレクトリを
                検索して %I を探し、最初に見つかったファイル
                のドライブ文字とパスだけに展開します。
  %~ftzaI     - %I を DIR コマンドの出力行のように展開します。