일반 Windows 명령줄을 사용하여 텍스트 파일의 값을 어떻게 증가시키나요?
-
09-06-2019 - |
문제
내 프로젝트 중 하나에 대해 "컴파일 카운터"를 유지하고 싶습니다.나는 이를 수행하는 빠르고 더러운 방법이 일반 숫자가 포함된 텍스트 파일을 유지한 다음 컴파일할 때마다 이 값을 증가시키는 작은 스크립트를 호출하는 것이라고 생각했습니다.
일반 Windows 명령줄을 사용하여 이 작업을 수행하려면 어떻게 해야 합니까?
이 작업을 수행하기 위해 추가 셸을 설치하고 싶지는 않지만 이 작업을 수행할 수 있는 매우 간단한 다른 제안이 있으면 자연스럽게 감사하게 생각합니다.
해결책
평범한 오래된 배치 파일을 사용해 볼 수 있습니다.
@echo off
for /f " delims==" %%i in (counter.txt) do set /A temp_counter= %%i+1
echo %temp_counter% > counter.txt
count.bat와 counter.txt가 동일한 디렉토리에 있다고 가정합니다.
다른 팁
새로운 셸이겠지만(하지만 그만한 가치가 있다고 생각합니다) PowerShell에서는
[int](get-content counter.txt) + 1 | out-file counter.txt
빌드의 현재 날짜/시간을 로그 파일에 추가하는 것이 좋습니다.
date >> builddates.txt
이렇게 하면 라인 수를 통해 빌드 수를 얻을 수 있고 나중에 날짜와 시간을 분석하는 데 방해가 될 수 있다면 흥미로운 통계를 얻을 수도 있습니다.
매우 빠른 프로젝트 반복을 수행하지 않는 한 파일의 줄 수를 계산하는 추가 크기 및 시간은 중요하지 않습니다!
Microscoft Windows 기반 스크립트를 실행해도 괜찮다면 이 jscript는 제대로 작동할 것입니다.그냥 .js 파일로 저장하고 "wscript c:/script.js"를 사용하여 dos에서 실행하세요.
var fso, f, fileCount;
var ForReading = 1, ForWriting = 2;
var filename = "c:\\testfile.txt";
fso = new ActiveXObject("Scripting.FileSystemObject");
//create file if its not found
if (! fso.FileExists(filename))
{
f = fso.OpenTextFile(filename, ForWriting, true);
f.Write("0");
f.Close();
}
f = fso.OpenTextFile(filename, ForReading);
fileCount = parseInt(f.ReadAll());
//make sure the input is a whole number
if (isNaN(fileCount))
{
fileCount = 0;
}
fileCount = fileCount + 1;
f = fso.OpenTextFile(filename, ForWriting, true);
f.Write(fileCount);
f.Close();
제휴하지 않습니다 StackOverflow