[前の記事]« コマンド結果を環境変数にセットするには
[次の記事]「追加の変数名」が割り当てられない »

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

▲カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ

2のファイル内から同じファイル名があるかどうかチェックするには

407.
検索について
2005年04月27日(水) 16時23分
maru
●DOS/Windowsのバージョン↓
Windows XP

(以下ご自由に質問文をお書きください)
ファイルの文字列から検索をかける方法を教えてください。
具体的にはファイルAに記載されているファイル名(フルパス)が
ファイルBに存在しない場合はエラーを出力させたいです。

Aファイルフォーマット
/home/test/test.sh
/etc/opt/test/test.log

Bファイルフォーマット
Mar 9 08:04:37 test01 sftp-server[1111] Removing file '/home/test/test.sh'
408.
Re:検索について
2005年04月28日(木) 16時44分
otn
>●DOS/Windowsのバージョン↓
>Windows XP

>(以下ご自由に質問文をお書きください)
>ファイルの文字列から検索をかける方法を教えてください。
>具体的にはファイルAに記載されているファイル名(フルパス)が
>ファイルBに存在しない場合はエラーを出力させたいです。

>Aファイルフォーマット
>/home/test/test.sh
>/etc/opt/test/test.log

>Bファイルフォーマット
>Mar 9 08:04:37 test01 sftp-server[1111] Removing file '/home/test/test.sh'

テストしてませんが、

for /f "delims=" %%A in (Afile.txt) do find "'%%A'" Bfile.txt >NUL || echo ERROR: "%%A" is not found.
421.
Re2:検索について
2005年05月02日(月) 10時33分
maru
>>●DOS/Windowsのバージョン↓
>>Windows XP
>>
>>(以下ご自由に質問文をお書きください)
>>ファイルの文字列から検索をかける方法を教えてください。
>>具体的にはファイルAに記載されているファイル名(フルパス)が
>>ファイルBに存在しない場合はエラーを出力させたいです。
>>
>>Aファイルフォーマット
>>/home/test/test.sh
>>/etc/opt/test/test.log
>>
>>Bファイルフォーマット
>>Mar 9 08:04:37 test01 sftp-server[1111] Removing file '/home/test/test.sh'

>テストしてませんが、

>for /f "delims=" %%A in (Afile.txt) do find "'%%A'" Bfile.txt >NUL || echo ERROR: "%%A" is not found.


ありがとうございます。
以下でいけました。

@echo off
findstr /b /c:"/" D:\a.txt > D:\b.txt
if %errorlevel% NEQ 0 (
goto err1
) ELSE (
echo ファイル一覧の取得に成功しました。
)

for /f "delims=" %%A in (D:\b.txt) do find "%%A" D:\c.txt >NUL || echo ERROR: "%%A" is not found.

goto end

:err1
echo ファイル一覧の抽出に失敗しました。[error:%errorlevel%]
goto end

:end
422.
Re3:検索について
2005年05月02日(月) 20時16分
otn
>>>●DOS/Windowsのバージョン↓
>>>Windows XP
>>>
>>>(以下ご自由に質問文をお書きください)
>>>ファイルの文字列から検索をかける方法を教えてください。
>>>具体的にはファイルAに記載されているファイル名(フルパス)が
>>>ファイルBに存在しない場合はエラーを出力させたいです。
>>>
>>>Aファイルフォーマット
>>>/home/test/test.sh
>>>/etc/opt/test/test.log
>>>
>>>Bファイルフォーマット
>>>Mar 9 08:04:37 test01 sftp-server[1111] Removing file '/home/test/test.sh'
>>
>>テストしてませんが、
>>
>>for /f "delims=" %%A in (Afile.txt) do find "'%%A'" Bfile.txt >NUL || echo ERROR: "%%A" is not found.
>>

>ありがとうございます。
>以下でいけました。

>for /f "delims=" %%A in (D:\b.txt) do find "%%A" D:\c.txt >NUL || echo ERROR: "%%A" is not found.

find "'%%A'" じゃなくて find "%%A" になってますが、これだと、

Aファイル
/home/test/test.sh
/home/test/test

Bファイル
Mar 9 08:04:37 test01 sftp-server[1111] Removing file '/home/test/test.sh'

のとき、/home/test/test ように部分的に一致するデータが not found になりませんが、そういうデータはありえないんですか?
それともBファイルのほうのファイル名が必ずしも' 'で囲まれていないのでしょうか?
 
 


カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2005年04月27日 15:00に投稿されたエントリーのページです。

ひとつ前の投稿は「コマンド結果を環境変数にセットするには」です。

次の投稿は「「追加の変数名」が割り当てられない」です。

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

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