2011-07-06 21 views
0

を交換し、私は時間が不足だと意志の非常に簡単なバッチスクリプトを作成するために探しています:簡単なバッチ検索&スクリプト

1)は、ファイルの名前が知られている(同じディレクトリに別のファイル内の文字列の名前を変更します) 例:交換 "[replace_me_with_path_to_second_file" first_file.txtの "current_working_directory/second_file.txt" と

2)オープン/クローズそのファイル "first_file.txt"

3)を実行

おかげあらかじめ!

+1

»私は時間が足りません«...それはただのコードフレーズ»私は解決策を探すのが面倒すぎて、他の人に自分の問題を解決させてもらえませんか? – Joey

+0

時間が足りないことが一時的に良い解決策を見つける能力を一時的に低下させている可能性があります。しかし、あなたが時間的に制約されていることを示唆することによって、私たちはあなたを効果的に同じ制約に置いています。 –

+0

また、以前のコメントにコメントしたり、その答えにクレジットを与えたりすることさえ気にしなくても、本当にあなたの質問に対するあなたの本当の関心が疑われます。 –

答えて

0

正規表現に慣れていれば、これはsedにとって完璧な仕事です。 Sedは、検索する式とその置換えの間の区切り文字として '/'を使用するため、ファイルパス内のスラッシュをエスケープする必要があります。あなたの例を使用するには:

sed -i 's/replace_me_with_path_to_second_file/current_working_directory\/second_file.txt/' first_file.txt 
+0

'cmd'はクォートに' ''を使わないことに注意してください... – Joey

0

おかげAlbergeを、私はこのバッチファイルは、構成を簡素化するために、Windows環境でダウンロードしたファイル内で使用されますので、sedを必要としない解決策を見出すことを期待していました。しかし、私はそれをパッケージ化しなければならないように見える:http://gnuwin32.sourceforge.net/packages/sed.htm

共同質問/回答ディレクトリの全体の前提は、質問をする人が次のいずれかであることを意味します。 1)答えは 2)短期間であり、主題に関するより多くの経験または知識を持つ人からアドバイスを探しています。

私が時間通りに拘束されているので質問をしていると批判するのはやや失礼です。


少し重いsedの依存関係(のdllが)ので、私はS/Rエミュレートするために、この便利でコンパクトなVBSスクリプトを見つけたことが判明 - 私はここでそれをポストし直しますIs there any sed like utility for cmd.exe

を:

Dim pat, patparts, rxp, inp 
pat = WScript.Arguments(0) 
patparts = Split(pat,"/") 
Set rxp = new RegExp 
rxp.Global = True 
rxp.Multiline = False 
rxp.Pattern = patparts(1) 
Do While Not WScript.StdIn.AtEndOfStream 
inp = WScript.StdIn.ReadLine() 
WScript.Echo rxp.Replace(inp, patparts(2)) 
Loop 

そして、私の完成バッチスクリプト:魔法のように

@echo off 

set full_path=%CD%\file_1.txt 
set input_file=file_2.txt 
set output_file=file_2.txt 

set str_search=FIND_ME 
set str_replace=%full_path% 

if not exist "%full_path%" (echo this file does not exist...)&goto :eof 

cscript //nologo sed.vbs s/%str_search%/"%str_replace%"/ <%input_file% >%output_file% 

作品: )

関連する問題