สคริปต์หรือเวิร์กโฟลว์เพื่อแก้ไขการค้นหาและแทนที่แบ็กสแลชในคลิปบอร์ด


0

ฉันต้องคัดลอกไฟล์พา ธ ที่เขียนโดยคนที่ใช้พีซี (ซึ่งใช้แบ็กสแลช) ไปยัง Mac (ซึ่งใช้สแลชข้างหน้า) และฉันเบื่อที่จะเปลี่ยนมันด้วยตนเองทุกครั้ง ฉันต้องคัดลอกไฟล์พา ธ จากเว็บเบราว์เซอร์ที่ใช้ร่วมกันของเราวางลงในเบราว์เซอร์ไฟล์ของฉันจากนั้นเข้าไปและลบแบ็กสแลชด้วยตนเองและแทนที่ด้วยสแลชฟอร์เวิร์ด

ส่วนสุดท้ายนั้นคือสิ่งที่ฆ่าฉันเพราะโดยทั่วไปทุก ๆ ไฟล์พา ธ ที่ฉันคัดลอกมีแบ็กสแลชหลายตัวที่ฉันต้องการวาง! สิ่งที่ฉันต้องการคือสิ่งที่จะแก้ไขเนื้อหาของคลิปบอร์ดของฉันดังนั้นฉันสามารถวางลงในเบราว์เซอร์ไฟล์ Mac ของฉันโดยไม่ต้องเปลี่ยนเครื่องหมายทับด้วยตนเองทุกครั้ง

กล่าวโดยย่อคือฉันต้องการให้ "\" ใด ๆ ในคลิปบอร์ดเปลี่ยนเป็น "/" ก่อนที่จะวาง มีใครช่วยฉันด้วยได้ไหม

คำตอบ:


1

การใช้บริการอัตโนมัติและ AppleScript รหัสที่นี่มีสองตัวอย่างของวิธีการที่คุณสามารถเปลี่ยนเครื่องหมายเพื่อslashesในสตริง

คนแรกใช้ข้อความที่เลือกที่ส่งผ่านไปยังบริการอัตโนมัติทำการเปลี่ยนและตั้งค่าผลลัพธ์ไปยังคลิปบอร์ด คุณสามารถวางจากที่นั่นด้วยตนเองได้ทุกที่ที่คุณต้องการซึ่งสามารถยอมรับข้อความที่วาง

ข้อความที่สองใช้ข้อความที่เลือกที่ส่งผ่านไปยังบริการอัตโนมัติทำการแทนที่แล้วแทนที่ข้อความที่เลือกที่ส่งผ่านด้วยข้อความที่แก้ไขซึ่งจะให้ข้อความต้นฉบับที่เลือกนั้นสามารถแก้ไขได้

มีเล็กน้อยคือรหัสแตกต่างระหว่างสองในon run ย่อยและการตั้งค่าความแตกต่างเดียวระหว่างบริการ ทั้งคู่ต้องเลือกสตริงข้อความก่อนจากนั้นคลิกขวาเพื่อเลือกบริการจากเมนูบริบทหรือการเข้าถึงบริการจากเมนู Application_Name> บริการ> on replaceText(find, replace, textString) ย่อยเหมือนกันในทั้งสองตัวอย่าง

รหัส AppleScript สำหรับบริการวิธีคลิปบอร์ด:

on run {input}
    set the clipboard to replaceText("\\", "/", input as string)
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

AppleScript รหัสสำหรับวิธีการแทนที่ข้อความที่เลือกบริการ :

on run {input}
    set input to replaceText("\\", "/", input as string)
    return input
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

วิธีใช้รหัส AppleScript ในบริการ Automator:

  • ในAutomatorให้สร้างบริการใหม่พร้อมรับบริการที่ได้รับข้อความที่เลือกในแอปพลิเคชันใด ๆและอินพุตเป็นการเลือกทั้งหมดจากนั้นไม่เลือกช่องทำเครื่องหมาย[] เอาท์พุทแทนที่ข้อความที่เลือกสำหรับบริการคลิปบอร์ด ( รหัส AppleScript สำหรับบริการวิธีคลิปบอร์ด:) [√] เอาท์พุทแทนที่ข้อความที่เลือกกล่องกาเครื่องหมายสำหรับสำหรับแทนที่เลือกบริการข้อความ (AppleScript รหัสสำหรับวิธีการเลือกข้อความแทนที่บริการ :)

  • เพิ่มRun AppleScript กระทำกับมันและลบรหัสเริ่มต้น

  • คัดลอกและวางรหัสใดก็ได้สำหรับวิธีการที่คุณเลือกใช้

  • บันทึกบริการด้วยชื่อที่เหมาะสมเช่นแทนที่แบ็กสแลชด้วยสแลชบนคลิปบอร์ดสำหรับอันแรกและหรือแทนที่แบ็กสแลชด้วยสแลชในข้อความที่เลือกสำหรับอันที่สอง หรือแน่นอนสิ่งที่คุณต้องการ

ตอนนี้เลือกข้อความบางส่วนที่มีเครื่องหมายในนั้นแล้วเลือกบริการชื่อจากเมนูบริการบริบท (คลิกขวา) หรือเมนู Application_Name> บริการ> และ

หากใช้วิธีคลิปบอร์ดให้วางข้อความที่เลือกที่แก้ไขแล้วตอนนี้ทุกที่ที่คุณต้องการหรือหากใช้วิธีการแทนที่ข้อความที่เลือกไว้แสดงว่ามีการแทนที่บริการที่เลือกแล้ว


-1
  1. เก็บรายการพา ธ ของ Windows ที่ยกมาเป็นข้อความธรรมดาตั้งชื่อเป็น paths.txt เช่น

     "C:\Program Files\xyz"
     "C:\Windows\System32"
  2. จากนั้นทำในเทอร์มินัล:

    cat paths.txt | sed -e 's#\\#\/#g' > converted.txt
  3. ผลเช่น

    "C:/Program Files/xyz"
    "C:/Windows/System32"

    หากคุณต้องการเส้นทางที่เป็นไปได้ให้ลอง

    cat paths.txt | sed -e 's#^\"\([a-zA-Z]\):#\"\/\1#' -e 's#\\#\/#g' > converted.txt

    ผลลัพธ์ที่แปลงแล้วจะเป็น:

    "/C/Program Files/xyz"
    "/C/Windows/System32"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.