Win10 클라이언트로 보내기 전에 UNC 경로로 SMB 경로를 자동화해야 함


1

새로운 기능이지만 기본적으로 SMB 링크를 가져 와서 UNC 링크로 변환하는 AppleScript를 작성하는 데 어려움을 겪고 있습니다.

모두 동일한 네트워크에서 모두 SNS NAS를 사용하고 있으며 Adobe Premiere 링크 용입니다. 이 작업을 모두 수동으로 수행 할 수 있지만 편집자는 각 링크를 변환 할 시간 / 환자가 없습니다. 선택한 텍스트를 변환하는 서비스로 통합 할 수있는 자동화 된 스크립트를 찾고 있습니다.

아래 기사를 찾았지만 우리가 찾고있는 것과 반대입니다. 나는 그 안에있는 모든 기능을 되돌려 보았지만 제대로 작동하지 못했습니다.

https://gist.github.com/anonymous/2211017

단순하게 만들어진 '서비스'가 클립 보드에 항목을 복사하여 최종 사용자가 전자 메일 및 슬랙 메신저와 같은 여러 가지 항목에 붙여 넣을 수 있으면 좋을 것입니다.

누군가가 올바른 방향으로 나를 도울 수 있기를 바랍니다. 약 1 주일 동안 Google을 검색했습니다.

편집 ** 아래 예

이전 경로 'smb : // server / folder'

새로운 경로 '\\ server \ folder'


나는 늦었고 잠이들 필요가 있었기 때문에 klanomath에 의해 일부 의견을 보낸 후 원래의 답변을 삭제했습니다. 나는 대답의 맨 위에 메모,주의 사항을 추가하고 삭제하지 않았습니다. 예를 들어, 그 이상이 필요하면 질문을 기한이 지났고 코딩에 대한 추가 도움이 필요한 경우 내가 당신을 위해 무엇을 할 수 있는지 볼 것입니다.
user3439894

답변:


1

참고 :이 답변은 콜론, 슬래시 및 백 슬래시를 제외하고 공백없이 SMB 경로에 이름에 영숫자 문자 만 포함 된 경우의 예일뿐입니다! 이 답변에 대한 의견을 읽으려면 다른 사항을 고려해야하는 경우 필요에 따라 코드를 수정해야합니다. 즉, 네트워크 시스템 관리자 및 네트워크 시스템 엔지니어로서 몇 년 동안 나는 공백이나 다른 콜론, 슬래시, 백 슬래시 및 영숫자 문자를 포함하는 공유를 만들지 않았 으므로이 간단한 예는 내가 필요한 전부입니다. 예 smb://server/folder를 들어 \\server\folder, UNC 경로에 사용한 SMB 경로 를 번역하십시오 . YMMV!


에서 자동화 , 새로운 생성 서비스 워크 플로우를 , 다음 추가 실행 AppleScript로 동작을 기본 교체하는 동안 여기에 애플 스크립트 코드를코드 아래 :

on searchReplace(theText, SearchString, ReplaceString)
    set OldDelims to AppleScript's text item delimiters
    set AppleScript's text item delimiters to SearchString
    set newText to text items of theText
    set AppleScript's text item delimiters to ReplaceString
    set newText to newText as text
    set AppleScript's text item delimiters to OldDelims
    return newText
end searchReplace

on run {input, parameters}
    set selectedText to item 1 of input as string
    set convertedText to searchReplace(selectedText, "smb://", "\\\\")
    set convertedText to searchReplace(convertedText, "/", "\\")
    set the clipboard to convertedText as string
    return convertedText
end run

그런 다음 서비스 를 다음과 같이 저장하십시오 . SMB 경로를 UNC 경로로 변환

이제 SMB 경로를 UNC 경로로 변환텍스트선택 되고 서비스 가 사용될 때 UNC 경로클립 보드에 배치 될 때 서비스 메뉴 또는 서비스 컨텍스트 메뉴 에 나타납니다 . (물론 이것은 선택한 텍스트 가 실제로 SMB 경로 라고 가정합니다 . 그렇지 않으면 서비스 가 실행될 때 선택된 텍스트 가 대체 텍스트 를 포함합니다.)

예제 SMB 경로 smb://server/folderUNC 경로 로 변환되어 클립 보드에\\server\folder 배치됩니다 .

참고 : 아래 이미지 에서 서비스 설정을 확인하십시오 . 선택한 텍스트를 대체 하는 출력 확인란 이 선택되어 있지 않습니다. 원하는 텍스트 인지 확인할 수 있지만 선택한 텍스트 를 실제로 바꿀 수 없는 경우 서비스 메뉴 또는 서비스 컨텍스트 메뉴서비스 가 나타나지 않습니다 .

SMB 경로를 UNC 경로 자동화 서비스로 변환


SMB 경로에 공백이나 \ 이스케이프 공백이 있으면 어떻게됩니까 ?
klanomath

@klanomath, 그건 아니에요! 나는 첫 번째 대체가 set convertedText to searchReplace(selectedText, "\\", "")백 슬래시를 제거 할 수 있다고 생각하므로 탈출 된 공간을 처리한다고 가정합니다. UNC 경로에 공백이있을 수 있습니까? 그렇다면 공간이있는 UNC 경로를 인용해야합니까?
user3439894

공백이 포함 된 AFAIK UNC 경로 는 Windows에서 인용해야합니다 . 그들을 탈출하거나 % 20은 아마 작동하지 않을 것입니다
klanomath

@klanomath, 그럼, 첫 번째 주석의 제안 된 코드를 추가 한 다음 convertedText클립 보드에 배치 된 UNC 경로가되고 공백이 여전히 인용되어 있는지 여부를 인용해야합니까? 현재 테스트 할 수 없으며 입력을 요청하는 이유가 무엇입니까? 감사.
user3439894

흠, 괜찮지 만 못생긴. 또한 POSIX 경로에가 포함 된 경우 경고를 게시하는 것이 좋습니다 <>|?*".
klanomath
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.