2016-07-25 2 views
2

robocopy (Windows 강력한 복사본)을 쉘 스크립트 (실제로 git 훅 임)에서 실행하려고합니다. /XO 옵션을 추가 할 때까지 제대로 작동합니다.bat와 sh 사이의 명령 줄 인수 구문의 차이점은 무엇입니까?

그래서 명령을 .BAT와의 .sh 파일에 제대로

robocopy source destination a.txt 

작품.

그러나 명령

robocopy source destination a.txt /XO 

는 오류의 .sh에 실패

ERROR : Invalid Parameter #3 : "C:/Program Files/Git/XO"

그것을 박쥐 파일에서 제대로 작동하는 반면.

/XO 옵션을 사용하는 경우 robocopy에 문제가 있습니다. 보다 구체적으로, 쉘 스크립트가 매개 변수를 robocopy으로 전달하는 방식입니다.

친절하게 해결책을 제안합니다.

+0

그래서,이 자식의 bash는 Cygwin에서 또는 MSYS을 기반으로합니다

robocopy source destination a.txt -xo 

그것이 /xo 옵션을 사용하고 있음을 보여줍니다? 이 문제는 발생하지 않아야한다. (http://sourceforge.net/mailarchive/message.php?msg_id=8686481). – anishsane

+0

확인 http://stackoverflow.com/questions/13701218/windows-path-to-posix-path-conversion-in-bash/13702694#13702694 – anishsane

답변

0

Git Bash을 사용하는 경우 Unix 스타일 옵션을 Windows 스타일의 옵션으로 지능적으로 변환합니다. 따라서, 예를 들어, 명령 :

------------------------------------------------------------------------------- 
    ROBOCOPY  ::  Robust File Copy for Windows 
------------------------------------------------------------------------------- 

    Started : Tue Feb 06 15:58:53 2018 

    Source : c:\gitbashdir\source 
    Dest : c:\gitbashdir\destination\ 

    Files : a.txt 

    Options : /COPY:DAT /XO /R:1000000 /W:30 

    : blah blah blah : 

    Ended : Tue Feb 06 15:58:53 2018