Apakah Anda tahu bahwa Anda dapat menentukan apakah string berakhir dengan karakter tertentu atau mulai dengan itu di PowerShell? Thomas Rayner sebelumnya membagikan di CANITPRO.NET betapa mudahnya melakukan dengan ekspresi reguler atau, lebih sederhana, Regex.

Terima kasih telah menerjemahkan MSP kami,
Lev Bulanov .
Perhatikan contoh-contoh berikut:
'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false
Dalam dua contoh pertama, skrip memeriksa untuk melihat apakah garis berakhir dengan garis miring terbalik. Dalam dua contoh terakhir, skrip memeriksa string untuk menentukan apakah itu dimulai dengan garis miring.
Pola regex untuk dua yang pertama terlihat seperti "\\ $". Apa artinya ini? Nah, bagian pertama \\ berarti "garis miring terbalik" (karena \ adalah karakter pelarian, dan kami pada dasarnya melarikan diri dari karakter melarikan diri. Bagian terakhir dari $ adalah sinyal akhir garis. Bahkan, kami memiliki "tidak ada sama sekali, di mana yang terakhir apa yang berdiri di garis adalah garis miring terbalik, "dan itulah yang kami cari.
Dalam dua contoh berikut, saya hanya memindahkan \\ ke awal baris dan mulai dengan ^, bukan $, karena ^ adalah sinyal untuk memulai baris.
Sekarang Anda dapat melakukan hal-hal seperti:
$dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
Di sini skrip memeriksa apakah garis 'beruang' diakhiri dengan garis miring terbalik, dan jika tidak, saya akan menambahkannya.