배치 스크립트 리디렉션 구문


4

언젠가 일괄 처리 스크립트 예제로 답을 썼고, 누군가가 파일로 리디렉션 할 때 배치 스크립트에서 에코 로직을 읽는 것이 더 쉽다는 것을 지적했습니다. 파일로 리디렉션 한 다음 명령, 텍스트 등 (아래 예 [1] ).

이 제안은 당신이 이것을하고 싶지 않은 이유를 언급하지 않았으므로 나는 조금 더 깨끗한 것으로 보이는 것들을 유지하기위한 네이티브 메소드를 항상 찾고 있기 때문에 조금 조사하기 시작했습니다.


예일 방식

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO Some Text Here>>"%tmpfile%"
ECHO A little more text here>>"%tmpfile%"
ECHO Some other text over here man>>"%tmpfile%"
ECHO Can Scooby please have a Scooby snack>>"%tmpfile%"

쉬운 방법을 읽는 예

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO>>"%tmpfile%" Some Text Here
ECHO>>"%tmpfile%" A little more text here
ECHO>>"%tmpfile%" Some other text over here man
ECHO>>"%tmpfile%" Can Scooby please have a Scooby snack

분명히 많이 있습니다. 더 쉬운 배치 스크립트에서 논리 읽기 ECHO 명령을이 형식으로 사용하지만 일괄 처리 스크립트에서이 방법을 표준으로 사용하는 문제가있는 경우 걱정이 될 수 있습니다.

나는 인터넷에서 주위를 둘러 보았다. 그리고 내가 발견 할 수 있었던 것은 아래에 언급 한 소스 중 하나였다. 다른 리디렉션을 포함하는 명령 줄에서이 기술을 사용하지 마십시오. [2] .


의문

이 질문은 Windows 배치 스크립팅 전문가 또는이 방법을 사용한 적이 있거나 엄격한 테스트를 거친 사람이있을 수 있습니다. . .

  1. 한 가지 문제 외 (여러 번 리디렉션 [2] )이 구문을 사용하지 않으려면 다른 문제, 이유 또는 문제점을 미리 고려해야합니까?

참고 문헌

  • 리디렉션 [1]

    • 주 : (3)

      하나 이상의 파일을 리다이렉션하면 배치 파일을   독서. 때로는 라인을 공백으로 채워 모든   방향 전환 표지판을 만들고 배치 파일을 더 읽기 쉽게 만듭니다.

      그러나 ECHO 명령 행으로이 작업을 수행하는 경우, 공백   정말로 에코 ​​드 (ECHOed) 될 것입니다.   가장 작은.

      마크 스턴의 웹 사이트 나는   훌륭한 솔루션 : 실제로 리디렉션을 실제   명령.

      이 가상 파일을 가져 가라. 예를 들면 다음과 같다.

      ECHO Directory of all files on C: >> LOG1.LOG

      DIR C:\ /S >> LOG1.LOG

      눈에는 쉽지 않은데, 그거?

      그럼 이건 어때?

      >> LOG1.LOG ECHO Directory of all files on C:

      >> LOG1.LOG DIR C:\ /S

      그것은 정확히 동일하거나 차이가 없습니다! 훨씬 더 좋지, 안 그래? 그러나   이제 다음을 시도해보십시오.

      VER | TIME > LOG1.LOG > LOG1.LOG VER | TIME

      두 번째 줄에서 알 수 있듯이 VER의 출력은 다음과 같습니다.   LOG1.LOG로 리디렉션됩니다! 엄지 손가락의 규칙으로 : 이것을 사용하지 마십시오.   다른 리디렉션이 포함 된 명령 줄에서

    출처


왜 삭제하고 있습니까? "%tmpfile%" 그것에 쓰는 즉시? 너는 신경 쓸 필요도 없다. echo 님의 :)
DavidPostill

@DavidPostill 나는 다른 논리를 그 전에 실행하는 예제에서 제외했지만 좋은 지적을했습니다.
Pimp Juice IT

1
"읽기 쉽다"는 "이해하기 쉽다"와 관련이 없다는 점에 유의하십시오. 당신이 기술 한 것은 작동하지만 꽤 모호한 기능입니다. 스크립트를 읽는 다른 사람들을 혼동시킬 가능성이 있기 때문에 사용하지 않을 것입니다. 그 외에는 당신이 이미 지적한 바에는 다른 문제가 없다는 것을 알고 있습니다. @David Postrill의 대답을 권하고 싶습니다. TAB 또는 공백을 사용하여 텍스트를 정렬하는 것은 실패한 것이지만 훌륭한 솔루션은 아니지만 혼란스럽지 않습니다.
Jack White

답변:


6

나는 항상 물건을 좀 더 깨끗하게 유지할 수있는 원시 방법을 찾고 있습니다.

다음은 또 다른 대안입니다. (나에게) 더 읽기 쉽습니다.

(
ECHO Some Text Here
ECHO A little more text here
ECHO Some other text over here man
ECHO Can Scooby please have a Scooby snack
)>>"%tmpfile%"

필요한 경우 리디렉션을 한 곳에서 수행하는 것과 같이 리디렉션을 켜거나 끄는 것이 훨씬 쉬워지기 때문에 더욱 관리하기 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.