0

나는 아래의 작업을 수행하고 있으며이를 수행하는 가장 빠르고 쉬운 방법이 무엇인지 궁금합니다. C# 응용 프로그램보다는 스크립팅을 생각하고 있지만 DOS에서는 스크립팅에 어려움을 겪고 있습니다. PowerShell을 사용하고 싶었지만 모든 컴퓨터에 powershell이 ​​설치되어 있는지 확실하지 않습니다.스크립트를 사용하여 모든 구성 파일의 문자열을 컴퓨터로 교체하십시오.

저는 15 대의 Windows 컴퓨터가 있고 각 컴퓨터마다 모든 * .config 파일 (예 : C : \ 및 D :)을 찾고 싶습니다. 특정 단어 (db 이름)를 바꿉니다.

컴퓨터에 로그인 할 수 있기 때문에 원격으로 실행하거나 원격으로 실행할 수 있습니다. 그러나 어려운 부분은 대본입니다.

모든 포인터를 시작할 수 있습니다.

감사합니다.

+0

가능한 중복 (http://stackoverflow.com/questions/16465051/is-it-possible-to-edit-config-file- – Endoro

답변

0

이 안된 및 파괴 때문에 C를 검색 할 수 있도록 설계되었습니다 먼저 타 테스트 :와 D : 드라이브 및 모든 하위 디렉토리의 모든 *의 .config 파일을 수정 .

c : \ abc 및 d : \ abc trees atm을 조사하도록 설정되어 있으므로 일부 파일과 폴더를 거기에 넣고 테스트하십시오.

@echo off 
for /f "delims=" %%a in ('dir c:\abc\*.config d:\abc\*.config /b /s /a-d') do (
call :sar "%%a" "%%a.tmp" "db_name" "new_db_name" 
move /y "%%a.tmp" "%%a" >nul 
) 
goto :EOF 
:sar 
:: inputfile outputfile regexp_search replacement 
if "%~5"=="" (set global=true) else (set global=false) 
set s=regex.replace(wscript.stdin.readall,"%~4") 
>_.vbs echo set regex=new regexp 
>>_.vbs echo regex.global=%global% 
>>_.vbs echo regEx.IgnoreCase=True 
>>_.vbs echo regex.pattern="%~3" 
>>_.vbs echo wscript.stdOut.write %s% 
cscript /nologo _.vbs <"%~1" >"%~2" 
del _.vbs 
goto :EOF 
[이 가능한 배치 스크립트를 사용하여 .config 파일을 편집하는 것입니다]의
+0

감사합니다. 몇 가지 조작을하고 테스트 해 보았습니다. 그 일을하는 것처럼 보입니다. 그러나, 나는 grepwin.exe를 사용하고 관리 할 수있었습니다. 그건 정말 좋은 무료 유틸리티, 정말 잘하고 깔끔한입니다. –

1

Wikipedia has some info on what versions of Windows have PowerShell.

버전 1.0은 버전 2.0은 Windows 7 및 Windows Server 2008 R2 및입니다 통합되어있는 Windows XP SP2/SP3, Windows Server 2003 및 Windows Vista .... 2006 년 출시 된 PowerShell을 Windows XP 서비스 팩 3, Windows Server 2003 서비스 팩 2 및 Windows Vista 서비스 팩 1 용으로 출시되었습니다. 버전 3.0은 Windows 8 및 Windows Server 2012와 통합되어 있습니다. Microsoft는 PowerShell 3을 Windows 7 서비스 팩 1, Windows Server 2008 서비스 팩 1 및 Windows Server 2008 R2 서비스 팩 1 용.

당신이 필요 승 7에서 버전 3을 설치하려면 WMF 3.0 package

관련 문제