Saya menggunakan skrip cmd untuk memindahkan sumber daya dari satu lokasi ke lokasi lain. Ini bekerja dengan baik.

Sekarang saya memiliki persyaratan untuk membuat perubahan pada kode saya di mana saya harus mengomentari satu baris kode dan menghapus komentar pada baris lain. Mantan. kode

public class SISConst
{
    //public const string SIS_APIKey = "AIzaSyrGUAXMezp86waQ";
    //public const string KPS_APIKEy = "AAAAqoT4xTw:APA91bHr3OS";
    //public const string Chanllengers_APIKey = "AIzaSyEfzyaCu8X22FmCXjOE";
    //public const string Trividyaa_APIKey = "AIzaSMFP4B3ddDXKLFrZxoKI";
    //public const string Global_APIKey = "AIzaSyCsZIgMKdxrDKtfVTI";
    //public const string Tulip_APIKey = "AIzaSyA1tP5iw7jTxW6JaliL-9Rc";
    //public const string Lmg_APIKey = "AIzaSyDYLKojBk-vVVDiq2DSH0";
    public const string RisingSun_APIKey = "AIzaSyAFh-wkAFYrXJHnrww"; 
}

Edit: Saya mengalihkan sumber daya berdasarkan param yang diberikan dalam file clientname.txt. Dalam file teks ini hanya memberikan folder klien seperti (Dari kode di atas) SIS, KPS, Global, Tulip. Tapi di sini kasusnya berbeda, saya hanya punya file bernama SISConst. Param klien harus berupa nama dalam variabel sebelum _. Katakanlah SIS_APIKey adalah SIS, KPS_APIKey adalah KPS dan seterusnya. Sekarang di file klien saya akan memberikan nama-nama ini KPS, SIS dll. Saya tidak melihat petunjuk lain.

Sampai sekarang saya menggunakan kode ini untuk memindahkan sumber daya

@echo off
setlocal enabledelayedexpansion
FOR /F "tokens=*" %%A in (1.ClientName.txt) DO ( 

XCOPY "..\AppIcons\%%A\drawable-hdpi\*" "..\RisingSun\Resources\drawable-hdpi\" /E /F /R /Y /H >> "..\AppIcons\%%A\copy.log"

Bagaimana saya bisa menulis kueri untuk membuat modifikasi kode, apakah mungkin?

Terima kasih.

0
Arvind Chourasiya 22 Maret 2019, 10:19

1 menjawab

Jawaban Terbaik

Oke, Jadi pertama, batch bukanlah alat terbaik untuk pekerjaan ini. Jika konten file berubah dengan cara apa pun (spasi tambahan/kurang, dll) itu akan memengaruhi output. Jadi ini adalah peretasan lengkap.

Catatan, Anda perlu mengganti nama file Anda yang sebenarnya, yang berisi kelas publik di mana saya memiliki FILENAMEHERE:

@echo off
setlocal enabledelayedexpansion
set "inputfile=D:\Arvind.ch\SIS\SIS_Product\SIS-Global-Dev\edTheSIS\RisingSun\MainActivity.cs"
for /f "tokens=*" %%A in (1.ClientName.txt) do (
    set "client=%%A"
    xcopy "..\AppIcons\%%A\drawable-hdpi\*" "..\RisingSun\Resources\drawable-hdpi\" /E /F /R /Y /H          >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\drawable-mdpi\*" "..\RisingSun\Resources\drawable-mdpi\" /E /F /R /Y /H          >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\drawable-xhdpi\*" "..\RisingSun\Resources\drawable-xhdpi\" /E /F /R /Y /H        >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\GoogleJsonFile\*" "..\RisingSun\" /E /F /R /Y /H     >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\LoginPageImage\*" "..\RisingSun\Resources\drawable\" /E /F /R /Y /H      >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\MenifestFile\*" "..\RisingSun\Properties\" /E /F /R /Y /H            >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\SplashScreenImage\*" "..\RisingSun\Resources\drawable\" /E /F /R /Y /H      >> "..\AppIcons\%%A\copy.log"
    xcopy "..\AppIcons\%%A\StringFile\*" "..\RisingSun\Resources\values\" /E /F /R /Y /H      >> "..\AppIcons\%%A\copy.log"

   )
    for /f "delims=" %%i in ('type "%inputfile%" ^| findstr "!client!"') do set "finder=%%i"
    for /f "tokens=*" %%a in ('type "%inputfile%" ^| find /v /n "" ^& break ^> "%inputfile%"') do (
              set "str=%%a"
              set "str=!str:*]=!"
              set "str=!str:            pushInfo.ServerkeyPush=         //pushInfo.ServerkeyPush!"
              if "!str!"=="!finder!" set "str=!str://pushInfo.ServerkeyPush=pushInfo.ServerkeyPush!"
             >>%inputfile% echo(!str!
)
2
Gerhard 22 Maret 2019, 10:58