0

Windows でバッチ スクリプトを作成するのに助けが必要です。私のディレクトリ C:\OUTFiles には、ウィキペディアの記事へのリンクを含むさまざまな長さの 2355 の .txt ファイルが含まれています。たとえば、「Holzhausen.txt」というファイルです。

http://de.wikipedia.org/wiki/[[Holzhausen (Langenpreising)]]、Ortsteil der Gemeinde [[Langenpreising]] http://de.wikipedia.org/wiki/[[Holzhausen (Dähre)]]、 Ortsteil der Gemeinde [[Dähre]] ...

C:\OUTFiles 内のすべてのファイルを調べて、各ファイルの長さを 10 行に短縮したいと思います (または、10 行より短い場合は長さを変更しないでください)。

さらに、上記の最初の行のようにファイルに [[some text]] が含まれている場合は、すべての括弧 [[ ]] を削除する必要があります。

Windowsでバッチスクリプトファイルとして行うにはどうすればよいですか? 私はバッチ スクリプトを初めて使用し、StackOverflow を検索してバッチ スクリプトを作成しようとしましたが、まだ完了していません。

@ECHO OFF
setlocal enabledelayedexpansion
set counter=1
for %%f in (*.txt) do call :p "%%f"
goto :eof

:p

SET /A maxlines=10
SET /A linecount=0

FOR /F %%A IN (*.txt) DO ( 
  IF !linecount! GEQ %maxlines% GOTO ExitLoop
  ECHO %%A 
  SET /A linecount+=1
)
SET /A counter+=1


:ExitLoop
:eof

一時停止

よろしくお願いします!ペトラ

4

1 に答える 1

0

この解決策は、バッチの代わりにpowershellを使用するという上記の私の提案を購入することを前提としています。

# this line assumes current directory - adjust to point to the actual location
$files = get-childitem *.txt
foreach ($file in $files) {
    $data = get-content $file
    $count = 1
    # this assumes that you want to put the modified 
    # output in a new file and keep the original file
    $newfile = $file.name + ".new.txt"
    foreach ($line in $data) {
        if($count -gt 10) {break}
        $line = $line -replace "[\[\]]",''
        out-file -filepath $newfile -inputobject $line -Append
        $count = $count + 1
    }
}
于 2012-08-07T21:03:42.417 に答える