A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
バッチのコードでーす
%~dp0はバッチと同じ場所という意味
VBSより短いぞぉ
――――――――――――――ここから―――――――――――――――
@echo off
setlocal enabledelayedexpansion
set fileA=%~dp0A.txt
set fileB=%~dp0B.txt
set output=%~dp0output_.txt
type nul>"%output%"
rem ファイルAを開く
for /f "usebackq delims=" %%f in ("%fileA%") do (
rem フルパスの場合は%%f
rem ファイル名+拡張子
set fileNameA=%%~nxf
rem ファイルBを開く
call :SubRoutine
)
pause
exit
:SubRoutine
for /f "usebackq delims=" %%g in ("%fileB%") do (
rem フルパスの場合は%%g
rem ファイル名+拡張子
set fileNameB=%%~nxg
if "!fileNameB!"=="%fileNameA%" (
echo "%fileNameA%"
echo "%fileNameA%">>"%output%"
)
)
exit /b
――――――――――――――ここまで―――――――――――――――
以上
No.2
- 回答日時:
あくまで一例。
使い方。コマンドプロンプトで実行。カレントディレクトリはVBSがあるところに移動しておくこと。
CScript FileCompare.vbs C:\A.txt C:\B.txt
***ここから下をコピーして、FileCompare.VBSファイルに保存***
Option Explicit
On Error Resume Next
Dim file1,file2 '入力ファイルパス
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim line '行読取り用
'引数チェック
if WScript.Arguments.Count <> 2 then
WScript.echo("usage: FileCompare.vbs file1 file2")
WScript.Quit(-1)
end if
file1 = WScript.Arguments(0)
file2 = WScript.Arguments(1)
' ArrayListの作成
Dim fileNameArrayList
Set fileNameArrayList = CreateObject("System.Collections.ArrayList")
'file1の各行を読み込み、ArrayListに追加
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(file1)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
line = objFile.ReadLine
fileNameArrayList.add line
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
'file2の各行を読み込み、重複しているかチェックし、重複している場合は出力
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(file2)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
line = objFile.ReadLine
If fileNameArrayList.Contains(line) Then
WScript.Echo line
End if
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- その他(パソコン・周辺機器) 同じファイル名 上書きしないフリーソフトなどあったら教えて下さい。 仕事で大量の写真などを扱っており 3 2023/05/18 06:43
- iOS ファイルの名前変更 2 2022/08/11 20:47
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
.txtではなく.logの方が良いの...
-
多数のサブディレクトリ内のフ...
-
ファイルの最後に文字列挿入
-
COPYコマンドで結合すると余計...
-
リモートのファイル存在確認
-
VBScriptでtxtファイルの中身を...
-
UWSCでファイルを開く方法
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
-
バッチファイル 複数ファイル...
-
wikiでローカルファイルのリン...
-
フルパスの中にワイルドカード...
-
ファイル内容の修正、行削除に...
-
Windowsのバッチファイルを利用...
-
FTPコマンドでgetしたい
-
accessでSQL文を使ってcsvファ...
-
テキストファイルのファイル名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
.txtではなく.logの方が良いの...
-
txtのファイルから編集してもい...
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
テキストファイルのファイル名...
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
renameコマンドについて
-
accessでSQL文を使ってcsvファ...
-
コマンドプロンプトでスペース...
-
ファイルを処理中に次の処理に...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
おすすめ情報