Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Find and replace \\ via Applescript

Pagina: 1
Acties:

Vraag


  • pina
  • Registratie: juli 2005
  • Laatst online: 20-06 19:22
Mijn vraag
Via Applescript een find and replace doen van een \\

Relevante software en hardware die ik gebruik
Mac

Wat ik al gevonden of geprobeerd heb
Google geeft veel resultaten voor een \ maar nog geen oplossing gevonden voor \\

Ik heb een apple script die ervoor zorgt dat ik bij een geselecteerde tekst een find and replace kan doen. Het is dus eigenlijk zo dat ik een windows path, dat een \\ bevat, wil omzetten naar een mac path met een //
\\admin moet dus: smb://admin


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
on run {input}
    set the clipboard to replaceText("\\", "smb://", 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


Met bovenstaande code interpreteert AS de "\\" als een \ en niet als een \\. Daardoor vervangt hij die 2x.
Ik krijg dit als result: smb://smb://admin

Hoe kan ik ervoor zorgen dat AS \\ als 1 character kan interpreteren ipv als 2 aparte?

Beste antwoord (via pina op 25-03-2021 23:19)


  • Daedalus
  • Registratie: mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

\ is een escape character. Vooral handig als je een " in een string wilt hebben, aangezien dat normaalgesproken het einde van de string aanduid. Een \\ in een string is dus effectief een \ (zoals je al gemerkt hebt. Je hebt dus een tweede \\ nodig, oftewel replaceText("\\\\", "smb://", input as string). Zie ook de RML van dit bericht, waar ik ook de \\ moet escapen.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/

Alle reacties


Acties:
  • Beste antwoord
  • +1Henk 'm!

  • Daedalus
  • Registratie: mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

\ is een escape character. Vooral handig als je een " in een string wilt hebben, aangezien dat normaalgesproken het einde van de string aanduid. Een \\ in een string is dus effectief een \ (zoals je al gemerkt hebt. Je hebt dus een tweede \\ nodig, oftewel replaceText("\\\\", "smb://", input as string). Zie ook de RML van dit bericht, waar ik ook de \\ moet escapen.

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • pina
  • Registratie: juli 2005
  • Laatst online: 20-06 19:22
bedankt, totaal over gekeken. Dacht nochtans dat ik het wel had geprobeerd...
nu vraag ik mij af, kan ik 2 argumenten meegeven? Idealiter zou ik enerzijds de \\ willen vervangen door smb:// en anderzijds ook nog de \ door een /

Nu heb ik het gewoon opgelost door 2 scripts achter elkaar te laten draaien. Het zou toch iets efficienter zijn als ik het met 1 script zou kunnen aanpassen.

  • Daedalus
  • Registratie: mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

M'n AppleScript skills zijn niet zo sterk, maar denk dat het handiger is als je alle backward slashes vervangt door forward slashes en smb:// ervoor plakt, iets als:

AppleScript:
1
set the clipboard to "smb:" & replaceText("\\", "/", input as string)

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/



Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True