2012-01-18 15 views
0

ファイル 'MyFile.txt'には行があり、その行の一部を置き換える必要があります。バッチを使用してファイル内のテキストの一部を置換します。

例:ファイル内

ラインは、私は「MyFile.txtを」内の既存の行から「111116」を置き換えたいこの

53544THOIN91111160000000 

のようなものです、ここのものは「111116」です変数であり、変化し続けるだろう。基本的にYYMMDDという形式の日付です。私は別のファイルから変更された日付を読み込み、「MyFile.txt」のこれらの番号を置き換えたいと思います。

私が試したコードはここにあります。

set b=MyFile.txt 

for /f "tokens= 1" %%c in (%b%) do (set line=%%c) 

Set OLDDate=%line:~11,6% 

SET filename="AnotherFile.txt" 
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf 

SET Month=%filedatetime:~0,2% 
SET Date=%filedatetime:~3,2% 
SET Year=%filedatetime:~8,2% 

SET NEWDate=%Year%%Month%%date% 

ECHO OLD DATE = %OLDDate% 
ECHO NEW DATE = %NEWDate% 

私は位置の 'MyFile.txtを' 内の%NEWDate%〜11,6

答えて

0

によってPowerShellはそれを行うことができなかった理由はどのような理由を交換する%OLDDate%が必要ですか?

# Example of PowerShell -replace parameter 
    clear-Host 
    $file = Get-ChildItem "D:\powershell\snippets\g*.txt" 
    foreach ($str in $file) 
    { 
    $content = Get-Content -path $str 
    $content | foreach {$_ -replace "the the", "the"} | Set-Content $str 
    } 
    write-Host "After replace `n" 
    $file 

foreachループでは、任意の文字列を別の文字列で置き換えることができます。次のように

日ロジックを使用することができます。

$anotherfile = gi anotherfile.txt 

は、日付情報

$year = $anotherfile.LastWriteTime.Year 
+0

を取得私は他に一つの変数を置き換えることができ、その変数と言われたよう? PowerShellを試してみませんでしたが、これはユーザーのシステム上で実行され、依存関係は必要ありません。 –

+0

Windows 7にはpowershellがネイティブにインストールされています。 Windows XPでは、Powershellを使用できるようにするために管理インストールアップデートが必要です。それは高度なコマンドラインのようなものです。 – Schwarzie2478

+0

このツールは、Windows 2000 Server、Windows 2003 Server、XP、Vistaおよび7で動作します... –

関連する問題