반응형
배치 파일에서 변수로 파일 내용을 읽는 방법은 무엇입니까?
이 배치 파일은 TEST에서 LIVE로 빌드를 릴리스합니다. 이 파일에 특정 폴더에 수반되는 릴리스 문서가 있는지 확인하는 검사 제한 조건을 추가하고 싶습니다.
"C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" "\\testserver\testapp$"
"\\liveserver\liveapp$" *.* /E /XA:H /PURGE /XO /XD ".svn" /NDL /NC /NS /NP
del "\\liveserver\liveapp$\web.config"
ren "\\liveserver\liveapp$\web.live.config" web.config
그래서 이것을 달성하는 방법에 대한 몇 가지 질문이 있습니다 ...
거기에있다
version.txt
에서 파일\\testserver\testapp$
폴더,이 파일의 유일한 내용은 빌드 번호를 (예를 들어, 45 - 빌드 45) 어떻게의 내용을 읽습니까version.txt
배치 파일에서 변수로 파일을?\\fileserver\myapp\releasedocs\ {build}.doc
{build} 대신에 파트 1의 변수를 사용하여 파일 이 존재 하는지 어떻게 확인 합니까?
파일 내용을 변수로 읽습니다.
for /f "delims=" %%x in (version.txt) do set Build=%%x
또는
set /p Build=<version.txt
둘 다 파일에서 한 줄로만 작동합니다. 더 많은 줄의 경우 for
변형은 마지막 줄을 변수에 넣고 첫 줄을 set /p
사용합니다 .
다른 환경 변수와 마찬가지로 변수를 사용하는 것은 결국 하나입니다.
%Build%
따라서 존재를 확인하려면 :
if exist \\fileserver\myapp\releasedocs\%Build%.doc ...
UNC 경로가 허용되지 않을 수도 있습니다. 지금 이것을 테스트 할 수는 없지만 이것을 명심하십시오.
다음과 같이 파일에서 여러 변수를 읽을 수 있습니다.
for /f "delims== tokens=1,2" %%G in (param.txt) do set %%G=%%H
param.txt :
PARAM1=value1
PARAM2=value2
...
그냥 해:
type version.txt
입력 한 것처럼 표시됩니다.
set /p Build=<version.txt
echo %Build%
파일의 모든 행을 변수에로드하려면 지연 확장이 필요하므로 다음을 수행하십시오.
SETLOCAL EnableDelayedExpansion
for /f "Tokens=* Delims=" %%x in (version.txt) do set Build=!Build!%%x
이 일부 특수 문자에 문제가있다, 특히하지만 ;
, %
및!
반응형
'Programing' 카테고리의 다른 글
Mac에서 sshfs로 마운트 된 디렉토리를 마운트 해제하십시오. (0) | 2020.06.20 |
---|---|
파이썬에서 디스크에 기본 http 파일 다운로드 및 저장? (0) | 2020.06.20 |
파이썬을 사용하여 간단한 XML 파일 만들기 (0) | 2020.06.20 |
if-else 블록에서 'if (0)'블록의 목적은 무엇입니까? (0) | 2020.06.20 |
Android Facebook 4.0 SDK 이메일, 생년월일 및 사용자 성별을 얻는 방법 (0) | 2020.06.20 |