2014-11-06 54 views
0

我試圖創建一個批處理文件,該文件將CONVER一個文件夾中的所有文件以.html文件夾爲.txt,查找和替換文本和逆向工程&回.txt文件爲.html替換mulitiple線。 HTML文件包含此行代碼使用CMD

     `$(".screenshot").click(function() { 
          $(".ui-background").show(); 
          $(this) 
           .clone() 
           .appendTo($('body')) 
           .addClass("full"); 
     });` 

我會喜歡

$("img.screenshot").addClass("fulldisplay"); 
$(".fulldisplay").css('float', 'left'); 
$(".fulldisplay").css('position', 'relative'); 
$(".fulldisplay").css('width', '100%'); 
$(".fulldisplay").css('height', 'auto'); 

來代替它使用任CMD行我能到HTML文件轉換爲.txt,這樣我可以搜索對於該字符串並將其替換爲所需字符串。但是,當涉及到找到並替換沒有爲我工作。我試圖用

powershell -Command "(gc C:\Users\IVIS\Downloads\m2test.txt) -replace '$(".screenshot").click(function(){$(".ui-background").show();$(this).clone().appendTo($('body')).addClass("full");});','$("img.screenshot").addClass("fulldisplay"); 
      $(".fulldisplay").css('float', 'left'); 
      $(".fulldisplay").css('position', 'relative'); 
      $(".fulldisplay").css('width', '100%'); 
      $(".fulldisplay").css('height', 'auto');'| Out-File C:\myFile.txt" 

和其他一些東西,但似乎沒有任何工作。我也嘗試使用fnr.exe也沒有工作。

回答

0

我認爲你是使用PowerShell遇到的問題是 - 更換使用正則表達式匹配,所以搜索字符串必須以轉義的正則表達式爲它工作。我認爲對你更好的方法是在PowerShell中創建腳本,並直接運行它或從批處理文件中調用腳本。我會做這樣的事情:

Param([String]$Dir='.') 
$Seek=(@' 
         `$(".screenshot").click(function() { 
          $(".ui-background").show(); 
          $(this) 
           .clone() 
           .appendTo($('body')) 
           .addClass("full"); 
     }); 
'@).trim() 
$NewText=(@' 
$("img.screenshot").addClass("fulldisplay"); 
      $(".fulldisplay").css('float', 'left'); 
      $(".fulldisplay").css('position', 'relative'); 
      $(".fulldisplay").css('width', '100%'); 
      $(".fulldisplay").css('height', 'auto'); 
'@).trim() 
Get-ChildItem "$Dir\*.html" | ForEach{ 
    $FilePath=$_.FullName 
    (Get-Content $_.FullName -ReadCount 0) -replace [RegEx]::Escape($Seek), $NewText|Out-File $FilePath 
} 

然後你可以從你的批處理文件中調用它,只是傳遞一個文件夾路徑,它會處理所有的HTML文件,該文件夾中。

+0

您好我真的你並欣賞快速回復,但我是新來這個PowerShell和仍在試圖去了解它。所以我做了一點變化accoordly樣變參數([字符串] $迪爾=「‘)與([字符串] $迪爾=’C:\ MD \開發\測試\結果」)作爲文件是在這條道路的智利。和canged的Get-ChildItem 「$迪爾\ *。HTML」 傳遞給Get-ChildItem 「$迪爾\ *。TXT」 我已經coverted從HTML文件改爲.txt,但我不知道該怎麼$文件路徑= $ _做.FullName(我的文件名是AutoTestresult.txt),所以我relaceed的全名與文件名,但沒有工作。我做錯了什麼? – 2014-11-07 15:31:01