Saya sedang mencari file Batch, yang dapat menggantikan setiap baris dengan "&".

MYFILE1.bat

@echo off
echo Hello!
pause
exit

Setelah mengonversi -> MYFILE2.bat

@echo off & echo Hello! & pause & exit

Saya mencoba ini, tetapi tidak berhasil:

setlocal enableextensions disabledelayedexpansion

set "search= "
set "replace=&"

set "textFile=MYFILE1.bat"

for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    >>"%textFile%" echo(!line:%search%=%replace%!
    endlocal
)

Apakah ada cara, untuk membuat .BAT melakukan ini? Terima kasih!

1
rifteyy 12 Mei 2021, 15:58

2 jawaban

Jawaban Terbaik

Sedikit tipuan dengan perintah SET /P dan pengalihan NUL. Ini akan memiliki & di akhir skrip akhir tetapi itu tidak akan menyebabkan kesalahan apa pun.

@echo off
set "textFile=MYFILE1.bat"

for /f "delims=" %%G in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
    >>"%textFile%" SET /P ".=%%G&"<nul
)
0
Squashman 12 Mei 2021, 14:00

Jika Anda menggunakan sistem Windows yang didukung, PowerShell akan tersedia.

C:>powershell -NoLogo -NoProfile -Command "(Get-Content -Path '.\MYFILE1.bat') -join ' & '"

Hasil.

 8:21:55.46  C:\src\t
C:>powershell -NoLogo -NoProfile -Command "(Get-Content -Path '.\MYFILE1.bat') -join ' & '"
@echo off & echo Hello! & pause & exit

Bahkan lebih mudah jika Anda dapat menggunakan konsol PowerShell atau membuat file skrip .ps1.

(Get-Content -Path '.\MYFILE1.bat') -join ' & '
0
lit 12 Mei 2021, 13:23