2016-04-08 31 views
0

Burada sıkışmış durumdayım. böylece son projem için yeni müşteri sistemlerini yapılandırma prosedürümüzü değiştirmek istiyorum. Kesin olmak için - sizin için "her şeyi" yapan bir parti başlatın.BATCH - dosya aç, satır/kelimeleri değiştir ve * .xml olarak kaydet

:NameNAMESPACE 
echo Whats the Namespace? 
set /p NAMESPACE=Name Namespace: 
echo Is %NAMESPACE% correct? (Y)es/(N)o 
set /P p=Please choose: 
if /i "%wahl%"=="Y" goto:CreateFolder 
if /i "%wahl%"=="N" goto:NameNAMESPACE 
echo Wrong choise! 
goto:NameNAMESPACE 

:NameHOSTNAME 
echo Whats the Hostname? 
set /p HOSTNAME=Name Hostname: 
echo Ist %HOSTNAME% correct? (Y)es/(N)o 
set /P wahl=Please choose: 
if /i "%wahl%"=="Y" goto:CreateFolder 
if /i "%wahl%"=="N" goto:NameHOSTNAME 
echo Wrong choise! 
goto:NameHOSTNAME 

şeylerde bunu almak :)
sorundur i (bir * .xml dosyasını düzenlemek gerekir noktada: Öncelikle sizin gibi sonradan şey gerekli olacak bazı şeyler isim var Bu dosyada yılında) ilk başta bir metin dosyası olabilir, ama xml olarak kaydedilmesi gerekir bu

<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <!--Connection--> 
    <add name="V4H_CONNECTIONINFO" value="Server=HOSTNAME;ServicePort=IISPort;ConnectionPort=1972;Namespace=NAMESPACE;ServiceUser=LicenseSlot_0;ServicePassword=!cgm!;Customer=SYS"/> 
    <!--URLs--> 
    <add name="V4H_URL_CLICKONCE" value="http://HOSTNAME:8010/v4h.Downloader.application"/> 
    <add name="V4H_URL_CHANNEL" value="http://HOSTNAME:IISPort"/> 
    <add name="V4H_URL_SERVICES" value="http://HOSTNAME:IISPort/Services/ChannelServices.asmx"/> 
    <add name="V4H_URL_SILVERLIGHT" value="http://HOSTNAME:IISPort/?ConnectionInfo={0}"/> 
    <!--ASP.NET--> 
    <add name="V4H_DBCONNECTION_CHANNEL" value="HOSTNAME,1972,NAMESPACE,ChannelServices_{12:0-5},!cgm!,Pooling=false"/> 
    <add name="V4H_DEBUGMODE_CHANNEL" value="false"/> 
</root> 

değiştirilmelidir önce belirlenen parametreler (ana bilgisayar adı, ad ve port) ve hostname_namespace olarak kaydedilir benziyor. xml Zaten ben bu işe başardı ama sadece bir parametre

@echo off &setlocal 
set NAMESPACE=TEST_CH_L 

set "search=NAMESPACE" 
set "replace=%NAMESPACE%" 


set "textfile=test.txt" 
set "newfile=Output.txt" 
(for /f "delims=" %%i in (%textfile%) do (
    set "line=%%i" 
    setlocal enabledelayedexpansion 
    set "line=!line:%search%=%replace%!" 
    echo(!line! 
    endlocal 
))>"%newfile%" 
del %textfile% 
rename %newfile% %textfile% 
echo Done 
pause 

Yani değiştirmek için bazı bunlar burada click

veya click

buradan işe almaya çalıştı umarım biriniz bana yardım edebilir ve loooog gönderdiği için özür dilerim

Max

+0

Toplu dosyalarına argümanlar tarafından belirtilen isimler yerine ilkel ve arkaik vardır. Yalnızca diğer programları yürütmek için kullanılmaları amaçlanmıştır. En azından parçalar yapman gerekeni yapan bir programa ihtiyacınız olacak. VBScript ve JavaScript, bir toplu iş dosyasının daha fazlasını yapabileceği her şeyi yapabilir. – user34660

cevap

0
@ECHO Off 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
SET "filename1=%sourcedir%\q36505840.txt" 
SET "outfile=%destdir%\outfile.txt" 

set "NAMESPACE=TEST_CH_L" 
SET "hostname=my_host" 
SET "port=starboard" 

REM set "textfile=test.txt" 
REM set "newfile=Output.txt" 
(
for /f "usebackqdelims=" %%i in ("%filename1%") do (
set "line=%%i" 
CALL :CHANGE namespace HOSTNAME port 
) 
)>"%outfile%" 

REM del %textfile% 
REM rename %newfile% %textfile% 
echo Done 

GOTO :EOF 

:CHANGE 
set "search=%1" 
IF NOT DEFINED search GOTO output 
FOR /f "tokens=1*delims==" %%n IN ('set %search%') DO IF /i "%%n"=="%search%" SET "replace=%%o" 
CALL set "line=%%line:%search%=%replace%%%" 
SHIFT 
GOTO CHANGE 

:output 
FOR /f "tokens=1*delims==" %%n IN ('set line') DO IF /i "%%n"=="line" ECHO(%%o 
GOTO :EOF 

Sen koşullara en uygun sourcedir ve destdir ayarlarını değiştirmesi gerekiyordu ilerlemek.

Testlerim için verilerinizi içeren q36505840.txt adlı bir dosya kullandım.

üç değişkenli namespacehostname ve port için%

Ben bıraktım

ama rem med-out orijinal kodunun bir kısmını & kurulan sabit değerler ÇıkışDosyası% olarak tanımlanan dosyayı üretir.

Toplu iş değişiminin büyük/küçük harf duyarlı olmadığını unutmayın, bu yüzden değişken örneklerini değiştiririm ve kaynak dosyanızı uygun şekilde değiştiririm.

Hiçbir büyük sürpriz - basitçe :CHANGE