このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1276873238/575
#  学校で宿題が出ました、助けて下さい>< 
#  実行すると下記のような動作をするバッチファイルスクリプトを作成したいです。 
#  よろしくお願いいたします。 
#   
#  実行するバッチファイルが現在存在するディレクトリにある全てのテキストファイルを書き換えるバッチを作成しなさい。 
#  テキストファイルの中に、pass = "C:\Users\users\Documents\workspace\test.txt"というような 
#  パスを変数に代入する記述があった場合 
#  そのパスの部分を、pass = "現在のバッチファイルの存在するディレクトリ\test.txt" 
#  という風にディレクトリ名だけを(ファイル名は書き換えない)書き換えるバッチを作成しなさい。 
# 

'実行するバッチファイルが現在存在するディレクトリにある全てのテキストファイルを書き換えるバッチを作成しなさい。テキストファイルの中に、pass = /Users/users/Documents/workspace/test.txt"というようなパスを変数に代入する記述があった場合そのパスの部分を、pass = "現在のバッチファイルの存在するディレクトリ/test.txt"という風にディレクトリ名だけを(ファイル名は書き換えない)書き換えるバッチを作成しなさい。'(_テキストファイル) :-
        pwd(CWDIR),
        get_chars(_テキストファイル,Chars_1),
        'ディレクトリ名だけを(ファイル名は書き換えない)書き換える'(CWDIR,Chars_1,Chars_2),
        put_chars(_テキストファイル,Chars_2).

'ディレクトリ名だけを(ファイル名は書き換えない)書き換える'(CWDIR,Chars_1,Chars_2) :-
        atom_chars(CWDIR,CWDIRL),
        パス部分を現在のディレクトリに置換する(CWDIRL,_chars_1,_前部分,_置換_後部分),
        'ディレクトリ名だけを(ファイル名は書き換えない)書き換える'(CWDIR,_後部分,Chars_2_2),
        append(_前部分,_置換された部分,Chars_2_2,_Chars_2).
'ディレクトリ名だけを(ファイル名は書き換えない)書き換える'(CWDIR,Chars,Chars).

パス部分を現在のディレクトリに置換する(Chars_1,_前部分,_置換された部分,_後部分) :-
        パス部分(_パス部分,_実質パス部分),
        append(_前部分,_パス部分,_後部分,Chars_1),
        ファイル部分(_実質パス部分,_ファイル部分),
        append([p,a,s,s,' ',=,' ','"'|CWDIRL],[/|_ファイル部分],['"'],_置換された部分),!.

パス部分([p,a,s,s,' ',=,' ','"'|R],_実質パス部分) :-
        append(_実質パス部分,['"'],R),
        \+(member('"',_実質パス部分)),!.

ファイル部分(_実質パス部分,_ファイル部分) :-
        append(_,[/|_ファイル部分],_実質パス部分),
        \+(member(/,_ファイル部分)),!.