0

バッチ スクリプトが正しく動作していないことがわかりました。ファイル内の特定の行を削除する関数を書きたかったのですが、これが私のコードです:

:unmark
    type %MARKPATH% | findstr /B /V %1 > %MARKPATH_COPY%
GOTO:EOF

はい、動作しますが、新しいコンテンツ (特定の行なし) を新しいファイルに書き込みます。しかし、その代わりに、既存のファイルを上書きしたいと考えています。そのように:

:unmark
    type %MARKPATH% | findstr /B /V %1 > %MARKPATH%
GOTO:EOF

しかし、それは機能していません。コードの実行後、ファイルは空です。何が問題で、どのように解決するのかを理解するのを手伝ってもらえますか?

4

2 に答える 2

0

問題の解決策を見つけたと思います (実用的ではないかもしれませんが、うまくいきました)

:unmark
    set LASTPATH=%CD%
    cd %MARKPATH%
    type %MARKFILE% | findstr /B /V %1 > %MARKFILECOPY%
    del %MARKFILE%
    ren %MARKFILECOPY% %MARKFILE%
    cd %LASTPATH%
GOTO:EOF
于 2013-08-24T09:55:53.390 に答える