以下のようなフォルダ構成があるとします。
C:.
├─aaa
│ ├─bbb
│ │ ├─g.txt
│ │ └─h.txt
│ └i.txt
└─j.txt

これら全階層のファイルに対して処理をして、

C:.
├─ccc
│ ├─ddd
│ │ ├─g.tst
│ │ └─h.tst
│ └i.tst
└─j.tst

とフォルダ構成そのままに移したいと考えています(拡張子tstは適当な例です)。

これをWindowsのバッチで何とか実行したいのですが何とかなりませんでしょうか。
フォルダ構成はxcopyで移すとして、個別のファイルに対しての処理が出来ずにおります。
お知恵を拝借出来れば幸いです。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> アプリケーションを通して変換したファイルのみを、別フォルダにフォルダ構造ごと移したいと思っています。



なるほど。じゃあこんな感じで。
---ここから---

@echo off
setlocal enableextensions
setlocal enabledelayedexpansion

rem 処理元フォルダ
set srcfolder=c:\aaa

rem 処理元フォルダの文字数
set srcfolderlen=6

rem 処理元ファイルの拡張子
set srcext=.txt

rem 処理元ファイルの拡張子の文字数
set srcextlen=4

rem 処理先フォルダ
set dstfolder=c:\ccc

rem 処理先ファイルの拡張子
set dstext=.tst

for /R %srcfolder% %%f in ( *%srcext% ) do (
set src=%%f
set dst=%dstfolder%!src:~%srcfolderlen%,-%srcextlen%!%dstext%

rem ディレクトリ作成。ちょっと泥臭いです
mkdir !dst!
rmdir !dst!

rem 処理コマンド(!src!は処理元ファイル、!dst!は処理先ファイルが入る)
echo !src!→!dst!
)
---ここまで---

C:\AAA 中の*.txt から、同じディレクトリ構成でC:\CCC下の*.tst なファイル名を生成し、
それを表示してるだけですので、処理内容に応じて適宜書き変えて下さい。
    • good
    • 0
この回答へのお礼

なるほど、何とかなりそうです。
ありがとうございました。

お礼日時:2011/04/21 19:54

以下のバッチファイルで、階層的に全ディレクトリ中の「*.txt」を見つけ出して、「*.tst」にリネームできます。


---ここから---
for /R %%f in ( *.txt ) do ren %%f *.tst
---ここまで---
このままだと、バッチファイルを実行した時のカレントディレクトリが起点になりますが、たとえば、

---ここから---
for /R C:\ %%f in ( *.txt ) do ren %%f *.tst
---ここまで---

のように、起点を指定(この場合C:\)してファイルを探すことも出来ます。

この回答への補足

繰り返しになりますが、アプリケーションを通してファイルを変換するので、
コピーしてリネームしてという訳ではありません。

説明不足でした。

アプリケーションを通して変換したファイルのみを、別フォルダにフォルダ構造ごと
移したいと思っています。

元ファイルと同一フォルダ内で変換してから、xcopyで移せばいいのでしょうか。

補足日時:2011/04/21 19:11
    • good
    • 0

xcopy /?



を見ればわかります。聞く前にヘルプ見ようね。

この回答への補足

アプリケーションを通してファイルを変換するので、コピーしてリネームしてという訳ではありません。

説明不足でした。

補足日時:2011/04/21 18:56
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qコンピューターの”階層”と”環境”を英語で言うと?

英語でコンピューターのフォルダの“階層”は何といえばいいのでしょうか?
“これらのファイルはXXXと同じ階層に置いてください”というようなことを伝えたいと思っています。 また、上の階層、下の階層はそれぞれ“Upper, Lower”でいいのでしょうか? 2つ上の階層、3つ下の階層はなんと表現すればいいのでしょうか?

もうひとつ、コンピューターの“環境”(OSやハードウェア、使用ソフトなど)は何といえばいいのでしょうか?
“問題がある場合はそちらの環境を教えてください”というようなことを伝えたいと思っています。

よろしくお願いします。

Aベストアンサー

こんにちわ。
ソフトウェア会社でローカライズをしています。私にとっては日常用語の「階層」です。定訳は「hierarchy」です。
今やっているマニュアルにも、hierarchyっていう単語の
オンパレードです。USのライターがhierarchyと表現しているから、これは間違いありません。

上の階層であれば、hierarchy one level up
下の層であれば、hierarchy one level down

と表現したほうがクリアです。階層の深さはマチマチなので、upperやlowerと漠然と表現するよりも、基準の位置からいったいどれくらい離れている階層なのかを明確に数字で表現したほうが読み手にとっても分かりやすいです。

だから、
2つ上の階層であれば、hierarchy two levels up
3つ下の階層であれば、hierarchy three levels down

でいいと思います。

あと「環境」は、日常生活ではenvironmentですが、
コンピュータの世界でも一緒です。コンピュータの世界には、この手の単語がたくさんあります。日常生活で使われている単語なんだけど、特殊な意味を持つものが。

“問題がある場合はそちらの環境を教えてください”は、

If you have any problems, please let us know what environment you are using.

で十分、通じると思います。

以上、ご参考になればと思います。

こんにちわ。
ソフトウェア会社でローカライズをしています。私にとっては日常用語の「階層」です。定訳は「hierarchy」です。
今やっているマニュアルにも、hierarchyっていう単語の
オンパレードです。USのライターがhierarchyと表現しているから、これは間違いありません。

上の階層であれば、hierarchy one level up
下の層であれば、hierarchy one level down

と表現したほうがクリアです。階層の深さはマチマチなので、upperやlowerと漠然と表現するよりも、基準の位置からいったいどれくらい離...続きを読む

QC:\Windows> から C:\Windows\Win98>への変更方法

次のMS DOSプロンプトの状態から
C:\Windows>

次のMS DOSプロンプトの状態にしたい。
C:\Windows\Win98>

色々試して見ましたがうまくいきませんので、教えてください。テストした結果は以下の通りです。

C:\Windows> CD \   と入力してEnterします
C:\>CD C:\Windows\Win98  と入力してEnterします

ディレクトリーの指定が違いますと、表示されてうまくいきません。

Aベストアンサー

>C:\>CD C:\Windows\Win98  と入力してEnterします

↑で別に間違ってはいないので、"C:\WINDOWS\win98"ディレクトリが存在しないのでは?

dir c:\windows\win98

で確認してみた方が良いと思います。

Q【英語】webページの「第二階層」

webページの「第二階層」て何て言うのがふさわしいですか?
two level
second class
・・

色々調べたのですが分からず、教えていただきたくお願いします!

Aベストアンサー

添付辞書の用例で


a second directory hierarchy

•The second directory belongs to a second directory hierarchy which is lower hierarchy than the first directory hierarchy.

第2ディレクトリは、第1ディレクトリ階層よりも下位の第2ディレクトリ階層に属する。


http://www.sophia-it.com/content/%E9%9A%8E%E5%B1%A4%E5%9E%8B%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E9%80%A0

参考URL:http://ejje.weblio.jp/content/directory+hierarchy

Q言語[C#]..フォルダ選択ダイアログで、フォルダ選択のための階層が表示されない

C#を使い、フォルダ選択のダイアログを表示させたいと思っています。WEB上に公開されていた下記コードを使い、フォルダ選択のダイアログを表示できました。
ただ、ダイアログが表示されたのはよいのですが、ダイアログ内に表示されるはずの、フォルダ選択のための階層部分が表示されません。この現象についてご存知の方、助言を頂きたくお願い致します。
また、C#は一昨日から使い初めたばかりです。初歩的なミスであった時は、どうぞお許し下さい。

フォルダ選択ダイアログの表示コード
------------------------------------------------
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.Description = "読み込むフォルダを指定してください" ;

if (fbd.ShowDialog() == DialogResult.OK)
{
txtInputFolder.Text = fbd.SelectedPath ;
}
------------------------------------------------

C#を使い、フォルダ選択のダイアログを表示させたいと思っています。WEB上に公開されていた下記コードを使い、フォルダ選択のダイアログを表示できました。
ただ、ダイアログが表示されたのはよいのですが、ダイアログ内に表示されるはずの、フォルダ選択のための階層部分が表示されません。この現象についてご存知の方、助言を頂きたくお願い致します。
また、C#は一昨日から使い初めたばかりです。初歩的なミスであった時は、どうぞお許し下さい。

フォルダ選択ダイアログの表示コード
------------------...続きを読む

Aベストアンサー

質問のコードで特に問題ありません。
ダイアログ内が何も表示されない・空だというような状態なのですか?

Q英語マニュアルの表現を教えてください

英語マニュアルで、なんて書いてありますか?

Explorerで目的のファイルに階層をたどって行く操作を、ドリルダウンって表現使いますか?

ドロップダウンでしょうか・・・・


どの様に記述されているか教えて下さい。

Aベストアンサー

Drill down until you get to this location: [ディレクトリ]

または

Click to drill down to display [ファイル名].

とかを使うこともあるようです。
きりで穴を開けていく感覚、かなと思います。

選択しなくても次にクリックする場所が操作者にわかっている時のみ使えますので
マニュアルでは「ここをクリックして」「次にここをクリックして」などのように、その都度指示をする方が多いと思います。

Qフォルダ階層のあるzipファイルで全ファイルを抽出

こんにちは

日々のちょっとした作業が煩わしくて、自動化できないかと思い質問します。

仕事で毎日、何度となく zip ファイルを受け取ります。このzipファイルは次のような階層になっています。

パターン1:
base.zip
-folder1
--folder2
---folder3
----workfile.txt

パターン2:
base.zip
-folder1
--folder2
---folder3
----folderA
-----workfileA.txt
----folderB
-----workfileB.txt
----folderC
-----workfileC.txt

必要なのは、パターン1の場合は workfile.txt、パターン2の場合は workfileA|B|C.txt です。毎日このフォルダ階層をたどって、最後のファイルをコピーしてまた元のディレクトリに戻ってペーストしています。パターン2の場合も、最後のA|B|Cファイルを元の同じ1つのディレクトリに並べてコピーしています(foldrA|B|Cに分かれていても関係ない、ということです)。

こうした作業を自動化する方法はないでしょうか。
7-zip アプリケーションは導入しています。
おそらく、考え方としては、zip 内にある「フォルダ以外」=「ファイル」を、そのzipファイルと同じディレクトリにすべて展開する、というスクリプトになると思います。

7-zip あたりのコマンドラインをbatファイルでこねくり回すとできるのか、zip をフォルダとして展開した後、batかwshスクリプトでぐるぐる回すのか、どうしたらよいかわかりません。

どなたかお知恵を貸してください。よろしくお願いします。

こんにちは

日々のちょっとした作業が煩わしくて、自動化できないかと思い質問します。

仕事で毎日、何度となく zip ファイルを受け取ります。このzipファイルは次のような階層になっています。

パターン1:
base.zip
-folder1
--folder2
---folder3
----workfile.txt

パターン2:
base.zip
-folder1
--folder2
---folder3
----folderA
-----workfileA.txt
----folderB
-----workfileB.txt
----folderC
-----workfileC.txt

必要なのは、パターン1の場合は workfile.txt、パターン2の場合は workfileA|B|C.txt...続きを読む

Aベストアンサー

http://sevenzip.sourceforge.jp/chm/cmdline/ の 7-Zipを使うなら以下のマニュアルに従う。
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
→即ち、 7z e base.zip
  ・カレントディレクトリをbase.zipの場所にしてから実行する

Qページ丸ごと保存するソフトの設定にある「階層」とは?

Gethtmlや巡集などのソフトの設定にある「階層」の意味が分りません。
1階層、2階層、3階層・・・と階層を増やしていくと具体的になにが変わってくるのでしょうか。漠然と階層を増やすとダウンロードするファイル数が増えるのは分るのですが

1階層、テキスト
2階層、画像  

とかでは無いですよね?

Aベストアンサー

No2です。

> / (区切り)を1階層と考えていいでしょうか
多くの単純なHPだと、そう考えていいです。

ただし、保存ソフトの使い方という面から見ると注意が必要です。
現在のページのリンク先にある、ファイルをターゲットとする場合、
リンク先自体、1階層下にあると、考えてください。

中には、プログラムで他のサーバーから、ファイルを呼び出している場合もあります。
その場合は、階層外となり、保存ソフトでは、ダウンロードできなかったはずです。
(最後の部分は、最近の保存ソフトを使ってないので、追跡機能があるかどうか自信有りません)

QDelphiでdebug構成とrelease構成で実行プログラム(処理内容)を変えられませんか?

いつもお世話になります。
Delphi10を使っています。
debugの時、releaseの時とは違うファイル名で出力したり、途中経過のファイルを出力したりしたいのですが、ソースを変えずにできないでしょうか?
releaseの時には不要部をコメントアウトするしかないのでしょうか?

Aベストアンサー

>ソースを変えずにできないでしょうか?

ビルドの前にそれぞれ書き換えなくても…ということでしょうか?
前準備として書き換えありでよければ、条件付きコンパイルで対応可能かと。
http://docwiki.embarcadero.com/RADStudio/XE8/ja/条件付きコンパイル(Delphi)
http://www.s-m-l.org/dev/delphi.html#コンパイラ指令
リンクが途中で切れているかも知れませんからコピペで見てください。
# PCからならFireFoxがよろしくエンコードしてくれたが…

QSDカードの階層について

 カーナビでSDカードに取り込んだ音楽再生ができません。4階層ではなく、3階層を指定してあげれば良いということですが、階層ってなんですか?階層はどのように表示、変更ができますか?教えてください。

Aベストアンサー

階層というのはフォルダー構造のことです。
何もフォルダーが作られていない状態のとき1階層でここを特にルートと呼びます。

ルートに作られたフォルダーの中が2階層目。
2階層目のフォルダの中に作られたフォルダーの中が3階層目。
以下どんどん深くフォルダーをツリー状に作成していけます。

QVBScript フォルダ以下からファイルの検索、コピー

VBScriptはまったくの初心者ですので、自分なりに調べてはみたのです
がどうしてもわからなかったため質問しています。
OSはWinXPになります。
VBScriptで特定のフォルダ(C:\AAA\)以下からファイル(*.txt)を検索し
てコピーするプログラムを書きたいです。

C:\AAA\・・・\*.txt

指定したフォルダからファイルを検索をすることはできたのですが、サ
ブフォルダがたくさんある場合のファイル検索ができませんでした。

コピーの仕方は検索したファイルから最新のタイムスタンプのファイル以外を別フォルダにコピーしたいです。

あとわかりやすいVBScriptについて記載されているサイトも教えていただけると助かります。

Aベストアンサー

フォルダ以下からファイルの検索をするにはサブフォルダについて再帰処理をする方法があります。例えば下のコードのように。

コピーは考慮すべきことが多いと思います。最新のタイムスタンプを知るにはファイル名ごとに(?)記憶する必要があります。また別フォルダは一つのフォルダにするか、コピー元と同じ構造にするか、ファイル名が重複したらどうするか、容量不足になったらどうするか、など。

VBScriptでgoogleすればたくさんサイトが出てきますね。MSのページは基本です。

http://www.microsoft.com/japan/msdn/scripting/
http://www.microsoft.com/japan/technet/scriptcenter/default.mspx

-----
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("C:\AAA")
Sub ShowSubFolders(Folder)
For Each File in Folder.Files 'Foler内のファイルを列挙する
Fname = File.name
If LCase(FSO.GetExtensionName(Fname))="txt" Then '拡張子txtを判定
WScript.Echo Folder & "\" & Fname
End If
Next
For Each Subfolder in Folder.SubFolders 'Foler内のフォルダを列挙する
ShowSubFolders Subfolder '再帰呼び出し
Next
End Sub
-----

フォルダ以下からファイルの検索をするにはサブフォルダについて再帰処理をする方法があります。例えば下のコードのように。

コピーは考慮すべきことが多いと思います。最新のタイムスタンプを知るにはファイル名ごとに(?)記憶する必要があります。また別フォルダは一つのフォルダにするか、コピー元と同じ構造にするか、ファイル名が重複したらどうするか、容量不足になったらどうするか、など。

VBScriptでgoogleすればたくさんサイトが出てきますね。MSのページは基本です。

http://www.microsoft....続きを読む


人気Q&Aランキング