[前の記事]« from STAFF【本掲示板での発言と過去ログの取り扱いについて】(あらためて)
[次の記事]入力文字列が日付として妥当な値かどうかをチェックする方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「EXIST」索引へ

ファイルリストを参照してファイルの存在を確認したい

1408.
ファイルリストからファイルパス取得して検索
2006年10月04日(水) 04時17分
わこう
ファイルリスト(例:yyyymmdd_n.txt nは整数が入ります。3-5行検索したいファイルパスが記述してあります。)に記述されたファイルパスを取得して、フォルダ(例:yyyymmdd[フォルダ名])以下から「.txt」と「.bat」を検索し、真偽を判定したいのです。
バッチファイルにファイルリストをドラッグ&ドロップしてフォルダ内を検索し、真偽だけ判定可能なのは出来たのですが…
バッチを実行しただけで判定できるようにしたいのです。
どなたかご教授ねがいます。
バッチ自体はサーバ上に。2000Servです。
1409.
Re:ファイルリストからファイルパス取得して検索
2006年10月04日(水) 21時50分
otn
>ファイルリスト(例:yyyymmdd_n.txt nは整数が入ります。3-5行検索したいファイルパスが記述してあります。)に記述された ファイルパスを取得して、フォルダ(例:yyyymmdd[フォルダ名])以下から「.txt」と「.bat」を検索し、真偽を判定したいのです。
>バッチファイルにファイルリストをドラッグ&ドロップしてフォルダ内を検索し、真偽だけ判定可能なのは出来たのですが…
>バッチを実行しただけで判定できるようにしたいのです。
>どなたかご教授ねがいます。
>バッチ自体はサーバ上に。2000Servです。

「真偽」の内容が書かれていないので、何がしたいのやら、さっぱりです。
投稿テンプレートを作ってみました。

・ディレクトリ環境はこうなっている
・そこにこういうファイルがある
・こういう操作をしたら、
・こういうアウトプットが欲しい
・そのためにこういうスクリプトを作ったが、
・この点が要求を満たしていない
1410.
Re:ファイルリストからファイルパス取得して検索
2006年10月05日(木) 01時25分
わこう
こんな感じで大丈夫でしょうか…

ディレクトリ環境:
E:\ABC

└kensaku.bat・・・(ア)

└sansyou
|   |
|   └yyyymmddn.txt・・・(イ)

└yyyymmddnn
    └taisyou.bat・・・(ウ)

ファイルの例:

(イ)のファイルには
[yyyymmddnn\taisyou.bat]
と記述されています。

スクリプトはこんな感じになっています:

@echo off
set TEST=E:\ABC
cd /d %TEST%
for /f %%I in (%1) do (
dir %%I > nul 2>&1 && echo  OKです >> %TEST%\check.txt
dir %%I > nul 2>&1 || echo  この行はNG >> %TEST%\check.txt
)
(ア)に(イ)をドラッグ&ドロップすれば、行ごとに真偽が出ます。(上の例では1行のみ記述してありますが)

(ア)を実行しただけで、(イ)の中身のパスを参照し、
(ウ)を探しだして、存在するかしないかを確認したいのです。

抽象的になってしまって申し訳ありません。

1414.
Re:ファイルリストからファイルパス取得して検索
2006年10月05日(木) 19時50分
otn
>(ア)を実行しただけで、(イ)の中身のパスを参照し、
>(ウ)を探しだして、存在するかしないかを確認したいのです。

いまひとつ分かりませんが、

set TEST=E:\ABC
cd /d %TEST%
for %%F in (sansyou\*.txt) do call :sub %%F
goto :eof

:sub
for /f %%I in (%1) do (
dir %%I > nul 2>&1 && echo  OKです >> %TEST%\check.txt
dir %%I > nul 2>&1 || echo  この行NG >> %TEST%\check.txt
)

みたいなことでしょうか?

1416.
Re:ファイルリストからファイルパス取得して検索
2006年10月06日(金) 01時45分
わこう
otnさん、ありがとうございます。
サブルーチンの使い方がいまいちだったもので…
もうひとつあるのですが、以下の例で、
>(イ)のファイルには
>[yyyymmddnn\taisyou.bat]
>と記述されています。
>

(イ)のファイルの「\」の前後に空白スペース(半角または全角)がある場合はどのように作ればよいでしょうか。
1418.
Re:ファイルリストからファイルパス取得して検索
2006年10月06日(金) 11時18分
otn
>(イ)のファイルの「\」の前後に空白スペース(半角または全角)がある場合はどのように作ればよいでしょうか。

空白がある場合にどうしたいのでしょうか?
・空白を含んだパス名として扱いたい
・空白を削除して扱いたい

もし後者なら、他に空白はありますか?あるとしたらそれも削除ですか?それとも \ の前後だけ削除ですか?
1420.
Re:ファイルリストからファイルパス取得して検索
2006年10月07日(土) 00時00分
わこう
>空白がある場合にどうしたいのでしょうか?
>・空白を含んだパス名として扱いたい
>・空白を削除して扱いたい
>
>もし後者なら、他に空白はありますか?あるとしたらそれも削除ですか?それとも \ の前後だけ削除ですか?

空白があるパス名はエラーとして扱って、「パス名+エラーがあります」という感じに、扱いたいと思います。

dirやtypeでリダイレクトでテキストに入れて比較は出来るのでしょうか…

1421.
Re:ファイルリストからファイルパス取得して検索
2006年10月08日(日) 11時45分
otn
>空白があるパス名はエラーとして扱って、「パス名+エラーがあります」という感じに、扱いたいと思います。

予想外です(笑)。

ファイル名と、それから空白を削除したものを比較して等しければ空白が無かったということになります。
前回のスクリプトで、subの中に追加。

:sub
set X=%1
if not "%X%"=="%X: =%" goto error

1427.
Re:ファイルリストからファイルパス取得して検索
2006年10月10日(火) 00時29分
わこう
otnさん、ありがとうございました。
試してみます。また機会があれば、
よろしくお願いいたします。
 
 


カテゴリー「EXIST」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年10月04日 11:07に投稿されたエントリーのページです。

ひとつ前の投稿は「from STAFF【本掲示板での発言と過去ログの取り扱いについて】(あらためて)」です。

次の投稿は「入力文字列が日付として妥当な値かどうかをチェックする方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート