salin “semua berisi file.txt” dan “ganti kata dengan file teks lain” dengan cmd menggunakan skrip dan utilitas apa pun

2

Saya punya dua file:

  • file1.txt
  • file2.txt

file1.txt

wget --ftp-user=ezyro_19988709 --http-password=....... ftp://ftp.com/ADMIN.txt

file2.txt

password

Jadi sekarang saya ingin memasukkan kata sandi dari file2 ke file1 dan mengganti area bertitik. Sekarang setelah menggabungkan dua output file harus seperti ini:

wget --ftp-user=ezyro_19988709 --http-password=password ftp://ftp.com/ADMIN.txt" 

Bagaimana saya melakukannya?

user3275899
sumber

Jawaban:

1

Anda harus mencoba ini:

Cukup buat file dengan .bat ekstensi, lalu masukkan kode berikut dalam file bat, Anda perlu membuat file Anda (file1.txt yang berisi baris perintah, dan file2.txt yang berisi kata sandi), letakkan dua file ini di direktori yang sama dengan .bat mengajukan.

Kemudian jalankan file, itu harus bekerja, tolong beri tahu saya jika ada kesalahan.

set replacestr=""
for /F "tokens=*" %%a in (file2.txt) do call :Foo %%a
goto End

:Foo
set replacestr=%1

call :innerloop  
:innerloop 

echo %replacestr%
call :FindReplace "......." %replacestr% file1.txt

exit /b 

:FindReplace <findstr> <replstr> <file>
set tmp="%temp%\tmp.txt"
If not exist %temp%\_.vbs call :MakeReplace
for /f "tokens=*" %%a in ('dir "%3" /s /b /a-d /on') do (
  for /f "usebackq" %%b in (`Findstr /mic:"%~1" "%%a"`) do (
    echo(&Echo Replacing "%~1" with "%~2" in file %%~nxa
    <%%a cscript //nologo %temp%\_.vbs "%~1" "%~2">%tmp%
    if exist %tmp% move /Y %tmp% "%%~dpnxa">nul
  )
)
del %temp%\_.vbs
exit /b

:MakeReplace
>%temp%\_.vbs echo with Wscript
>>%temp%\_.vbs echo set args=.arguments
>>%temp%\_.vbs echo .StdOut.Write _
>>%temp%\_.vbs echo Replace(.StdIn.ReadAll,args(0),args(1),1,-1,1)
>>%temp%\_.vbs echo end with
Yacine
sumber
1
Anda benar-benar hebat !!! Terima kasih banyak. berhasil!!!
user3275899
1
senang untuk Anda ;)
Yacine
Halo pak, saya punya masalah dengan kode ini. Saya meletakkan kode Anda di code.bat dan kemudian saya mencoba untuk memulai code.bat menggunakan skrip vbs di folder% temp%: File start.vbs berisi: Set oShell = CreateObject ("Wscript.Shell") Dim strArgs strArgs = "cmd / c code.bat "oShell.Run strArgs, 0, false Ini berjalan dengan baik tetapi tidak dapat mengganti" ....... "di file1.txt.
user3275899
Saya bisa melihat nama file "_.vbs" di folder% temp% berisi kode: dengan Wscript set args = .arguments .StdOut.Write _ Ganti (.StdIn.ReadAll, args (0), args (1), 1, -1,1) diakhiri dengan
user3275899
2

Jika Anda memiliki Powershell diinstal pada Windows Anda, Anda dapat membukanya dan meluncurkan perintah ini:

(Get-Content fullPathToFile2.txt).replace('string', (Get-Content fullPathToFile1.txt) ) | Set-Content fullPathToFile2.txt

Contoh:

(Get-Content I:\b.txt).replace('5', (Get-Content I:\a.txt) ) | Set-Content I:\b.txt
m2cit
sumber
Terima kasih atas jawaban Anda tetapi pak, saya tidak ingin menggunakan Powershell karena saya memerlukan solusi universal untuk semua teman saya di luar sana, ingin menggunakan vbscript atau utilitas pengganti char_string untuk baris perintah seperti fart.exe.tapi dalam hal ini fart.exe tidak bisa membantu saya. Itu kurang operasi semacam ini.
user3275899
1
Saya membaca judul posting Anda "[...] menggunakan skrip dan utilitas apa pun" jadi saya pikir Powershell tidak akan menjadi masalah. Namun saya melihat Anda menyelesaikan masalah Anda
m2cit