
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
確か, 相対パスをとりだす「完全な方法」はなかったような気がします.
擬似的には for /F の delim=, tokens= オプションでできて, 例えば a:\some\a 以下と b:\other\b 以下を比較するなら
for /F "delim=\ tokens=3*" %F in ('dir /b a:\some\a\*.txt') do fc a:\some\a\%G b:\other\b\%G
という感じになるかと. for のヘルプを読んで理解してください.
この回答への補足
Tacosanさん、
返答ありがとうございました。
バッチで、相対パスを取り出す問題について、やはり難航ですね。
はい、いろいろ教われまして、ありがとうございました
No.3
- 回答日時:
比較したい 2つのディレクトリは, それぞれどんな構成になっているんですか?
そのうち, どのファイルとどのファイルを比較したいんですか?
それがわからないので「失敗した」と言われたところでどうしようもありません.
せいぜい「for のヘルプを読め」くらい.
この回答への補足
Tacosanさん、
比較したいディレクトリは、こんな構成になっています。
AとBのディレクトリを比較したいんです。Aの下に、a.txtファイルと
testディレクトリがあって、testの下に、b.txtがあります。
Bディレクトリのしたにもa.txtファイルとtestディレクトリがあって、testの下に、b.txtがあります。
a\a.txtとb\a.txt,また、a\text\b.txtとb\text\b.txt は、比較したい
ものです。
for /F %%F in ('dir /s /b a\*.txt') do fc /B %%F "b\%%~pnxF"
を使えば、aの下のtxtのフルパスがb\の後ろに追加されます。
bのしたにそのようなファイルがないので、失敗します。
相対パスが追加される方法がありませんでしょうか?
また、教えていただけないでしょうか?
よろしくお願いします。
No.2
- 回答日時:
「教えてくれないか」って, なんか偉そう....
ぱっと思い付くのは for + dir + fc かな. 例えば
for /F "delims= " %%F in ('dir /b a:\*.txt') do fc /b %%F "b:\%%~pnxF"
で a:\*.txt と b:\*.txt の比較ができるような気がします. サブフォルダの中まで比較したければ dir /s /b a:\*.txt にすれば「a ドライブにある全ての *.txt ファイル」が対象になります.
あ, バッチファイル用に %% にしてあります. 「試しにコマンドラインから実行してみる」というときには, %% ではなく % にして実行してください.
この回答への補足
Tacosan さん、
回答ありがとうございました。
Tacosanさんの案でやってみたら、やはり失敗しました。
%%~pnxFのところにa:\*.txtのフルパスが付けられて、失敗の原因になりました。
それを回避する方法がありませんでしょうか?
いろいろありがとうございました!
また、よろしくお願いします。
No.1
- 回答日時:
OSはWindowsですか?
「バイナリモードを比較」の意味が解りません。テキストファイルかバイナリファイルかを比較するんでしょうか?それとも、テキストファイルではなく、バイナリファイルとして比較する、という意味でしょうか?
比較の結果は、「同一」「異なる」の二つでいいのでしょうか?それとも、同一でない場合は、差分を出力する必要があるでしょうか?
サブフォルダの下のファイルも再帰的に比較する必要があるのでしょうか?
UNIX系のdiffコマンドで解決できそうな気がします。参考URLからWindows版が手に入ります。
参考URL:http://www.gfd-dennou.org/library/cc-env/diff-wi …
この回答への補足
失礼しました。補足ですが、diffで実現できますが、バッチファイル
で実装したいときに、どうすれば、いいですか。
実は、「バイナリモードを比較」じゃなくて、バイナリモードで比較するということをいいたかったです。
例えば、Aのフォルダの下に、a.txtとb.txt,および、Sqlフォルダがあります。Sqlフォルダの下にc.txtとDB2フォルダもあります。同様に、
Bというフォルダがあって、その下には、Aと同じファイル名のファイルとフォルダがあります。比較するときに、A:\\a.txt と B:\\a.txt は、比較したいです。また,A:\\b.txt と B:\\b.txtは、比較したいです。
OSはWindowsです。
また、よろしくお願いします
ken-etusu さん、
早速の返答ありがとうございます。
失礼しましたが、私の書き間違いでした。
実は、「バイナリモードを比較」じゃなくて、バイナリモードで比較するということをいいたかったです。
例えば、Aのフォルダの下に、a.txtとb.txt,および、Sqlフォルダがあります。Sqlフォルダの下にc.txtとDB2フォルダもあります。同様に、
Bというフォルダがあって、その下には、Aと同じファイル名のファイルとフォルダがあります。比較するときに、A:\\a.txt と B:\\a.txt は、比較したいです。また,A:\\b.txt と B:\\b.txtは、比較したいです。
OSはWindowsです。
また、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
バッチ処理でファイルの中身を...
-
テキストファイルで提出とは?
-
複数のテキストファイルを1つに...
-
バッチファイルで文字列削除に...
-
3つ以上のテキストファイルをコ...
-
コマンドプロンプトで指定した...
-
バッチファイル 複数ファイル...
-
ファイル内の文字列を検索して...
-
CMakeでエラーが出ます
-
ftpコマンドで複数のファイルを...
-
FTPコマンドでgetしたい
-
バッチでファイルの内容の比較...
-
COPYコマンドで結合すると余計...
-
UWSCでテキストファイルを開い...
-
MATLABで行列を配列に格納する方法
-
拡張子を元に戻す
-
EXCEl/VBAで拡張子なしのファイ...
-
テキストファイルの内容を連結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.txtではなく.logの方が良いの...
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
エクセルの各セルの内容をそれ...
-
拡張子を元に戻す
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
COPYコマンドで結合すると余計...
-
renameコマンドについて
-
バッチファイルで文字列削除に...
-
テキストファイルで提出とは?
-
ファイル名の一部をbatで変更し...
-
forfilesで検索したファイルを...
-
バッチファイル 複数ファイル...
-
Windowsのバッチファイルを利用...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
ファイル内容の修正、行削除に...
おすすめ情報