Bir PowerShell komutu istediğini biliyorum, ama önereceğim şey yeterli olabilir.
Standart bir Cmd.exe kabuğunda çalışacaktır; bu, onu PowerShell'de de çalıştırabileceğiniz ve eski Windows işletim sistemlerinde geriye dönük olarak uyumlu olacağı anlamına gelir:
TYPE abc.txt | FIND "Logged into app\prog58" >NUL && IF NOT DEFINED %ERRORLEVEL% (TYPE NUL >prog58)
Yine de soruyu yanlış anlıyor olabilirim. Tam olarak aradığın şeyin bu olup olmadığını ya da ismiyle bir dosya oluşturmak istediğini açıklayabilir misin? progXX
abc.txt dosyasındaki metin ne olursa olsun?
Açıklamadan sonra düzenle: Aşağıdakiler aynı zamanda Cmd.exe uyumludur ve PowerShell'e özel değildir, bu nedenle tek astar olarak kullanılamazken, basit bir Toplu komut dosyası olarak adlandırılabilir:
@ECHO OFF
SETLOCAL && SETLOCAL EnableExtensions EnableDelayedExpansion
FOR /F "tokens=1-2 delims=\" %%A IN ('TYPE abc.txt ^| FINDSTR /C:"Logged into app\prog"') DO (SET FILENAME=%%B)
SET FILENAME=%FILENAME:~0,6%
TYPE NUL >%FILENAME%
Uyarma: bu dayanır progXX
tam olarak 2 hane sahip progXXX
işe yaramazdı.