「Path.ahk(旧)」の編集履歴(バックアップ)一覧はこちら
「Path.ahk(旧)」(2012/11/13 (火) 22:49:32) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<div style="font-family:'MS Gothic', monospace;margin-left:1em;line-height:130%;">
<table style="border-collapse:collapse;border-width:0;"><tr><td style="border-style:solid;border-width:0px 1px 0px 0px;padding:3pt;text-align:right;color:#5A4F25;background-color:#FFFCF2;">
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
33<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
41<br />
42<br />
43<br />
44<br />
45<br />
46<br />
47<br />
48<br />
49<br />
50<br />
51<br />
52<br />
53<br />
54<br />
55<br />
56<br />
57<br />
58<br />
59<br />
60<br />
61<br />
62<br />
63<br />
64<br />
65<br />
66<br />
67<br />
68<br />
69<br />
70<br />
71<br />
72<br />
73<br />
74<br />
75<br />
76<br />
77<br />
78<br />
79<br />
80<br />
81<br />
82<br />
83<br />
84<br />
85<br />
86<br />
87<br />
88<br />
89<br />
90<br />
91<br />
92<br />
93<br />
94<br />
95<br />
96<br />
97<br />
98<br />
99<br />
100<br />
101<br />
102<br />
103<br />
104<br />
105<br />
106<br />
107<br />
108<br />
109<br />
110<br />
111<br />
112<br />
113<br />
114<br />
115<br />
116<br />
117<br />
118<br />
119<br />
120<br />
121<br />
122<br />
123<br />
124<br />
125<br />
126<br />
127<br />
128<br />
129<br />
130<br />
131<br />
132<br />
133<br />
134<br />
135<br />
136<br />
137<br />
138<br />
139<br />
140<br />
141<br />
142<br />
143<br />
144<br />
145<br />
146<br />
147<br />
148<br />
149<br />
150<br />
151<br />
152<br />
153<br />
154<br />
155<br />
156<br />
157<br />
158<br />
159<br />
160<br />
161<br />
162<br />
163<br />
164<br />
165<br />
166<br />
167<br />
168<br />
169<br />
170<br />
171<br />
172<br />
173<br />
174<br />
175<br />
176<br />
177<br />
178<br />
179<br />
180<br />
181<br />
182<br />
183<br />
184<br />
185<br />
186<br />
187<br />
188<br />
189<br />
190<br />
191<br />
192<br />
193<br />
194<br />
195<br />
196<br />
197<br />
198<br />
199<br />
200<br />
201<br />
202<br />
203<br />
204<br />
205<br />
206<br />
207<br />
208<br />
209<br />
210<br />
211<br />
212<br />
213<br />
214<br />
215<br />
216<br />
217<br />
218<br />
219<br />
220<br />
221<br />
222<br />
223<br />
224<br />
225<br />
226<br />
227<br />
228<br />
229<br />
230<br />
231<br />
232<br />
233<br />
234<br />
235<br />
236<br />
237<br />
238<br />
239<br />
240<br />
241<br />
242<br />
243<br />
244<br />
245<br />
246<br />
247<br />
248<br />
249<br />
250<br />
251<br />
252<br />
253<br />
254<br />
255<br />
256<br />
257<br />
258<br />
259<br />
260<br />
261<br />
262<br />
263<br />
264<br />
265<br />
266<br />
267<br />
268<br />
269<br />
270<br />
271<br />
272<br />
273<br />
274<br />
275<br />
276<br />
277<br />
278<br />
279<br />
280<br />
281<br />
282<br />
283<br />
284<br />
285<br />
286<br />
287<br />
288<br />
289<br />
290<br />
291<br />
292<br />
293<br />
294<br />
295<br />
296<br />
297<br />
298<br />
299<br />
300<br />
301<br />
302<br />
303<br />
304<br />
305<br />
306<br />
307<br />
308<br />
309<br />
310<br />
311<br />
312<br />
313<br />
314<br />
315<br />
316<br />
317<br />
318<br />
319<br />
320<br />
321<br />
322<br />
323<br />
324<br />
325<br />
326<br />
327<br />
328<br />
329<br />
330<br />
331<br />
332<br />
333<br />
334<br />
335<br />
336<br />
337<br />
338<br />
339<br />
340<br />
341<br />
342<br />
343<br />
344<br />
345<br />
346<br />
347<br />
348<br />
349<br />
350<br />
351<br />
352<br />
353<br />
354<br />
355<br />
356<br />
357<br />
358<br />
359<br />
360<br />
361<br />
362<br />
363<br />
364<br />
365<br />
366<br />
367<br />
368<br />
369<br />
370<br />
371<br />
372<br />
373<br />
374<br />
375<br />
376<br />
377<br />
378<br />
379<br />
380<br />
381<br />
382<br />
383<br />
384<br />
385<br />
386<br />
387<br />
388<br />
389<br />
390<br />
391<br />
392<br />
393<br />
394<br />
395<br />
396<br />
397<br />
398<br />
399<br />
400<br />
401<br />
402<br />
403<br />
404<br />
405<br />
406<br />
407<br />
408<br />
409<br />
410<br />
411<br />
412<br />
413<br />
414<br />
415<br />
416<br />
417<br />
418<br />
419<br />
420<br />
421<br />
422<br />
423<br />
424<br />
425<br />
426<br />
427<br />
428<br />
429<br />
430<br />
431<br />
432<br />
433<br />
434<br />
435<br />
436<br />
437<br />
438<br />
439<br />
440<br />
441<br />
442<br />
443<br />
444<br />
445<br />
446<br />
447<br />
448<br />
449<br />
450<br />
451<br />
452<br />
453<br />
454<br />
455<br />
456<br />
457<br />
458<br />
459<br />
460<br />
461<br />
462<br />
463<br />
464<br />
465<br />
466<br />
467<br />
468<br />
469<br />
470<br />
471<br />
472<br />
473<br />
474<br />
475<br />
476<br />
477<br />
478<br />
479<br />
480<br />
481<br />
482<br />
483<br />
484<br />
485<br />
486<br />
487<br />
488<br />
489<br />
490<br />
491<br />
492<br />
493<br />
494<br />
495<br />
496<br />
497<br />
498<br />
499<br />
500<br />
501<br />
502<br />
503<br />
504<br />
505<br />
506<br />
507<br />
508<br />
509<br />
510<br />
511<br />
512<br />
513<br />
514<br />
515<br />
516<br />
517<br />
518<br />
519<br />
520<br />
521<br />
522<br />
523<br />
524<br />
525<br />
526<br />
527<br />
528<br />
529<br />
530<br />
531<br />
532<br />
533<br />
534<br />
535<br />
536<br />
537<br />
538<br />
539<br />
540<br />
541<br />
542<br />
543<br />
544<br />
545<br />
546<br />
547<br />
548<br />
549<br />
550<br />
551<br />
552<br />
553<br />
554<br />
555<br />
556<br />
557<br />
558<br />
559<br />
560<br />
561<br />
562<br />
563<br />
564<br />
565<br />
566<br />
567<br />
568<br />
569<br />
570<br />
571<br />
572<br />
573<br />
574<br />
575<br />
576<br />
577<br />
578<br />
579<br />
580<br />
581<br />
582<br />
583<br />
584<br />
585<br />
586<br />
587<br />
588<br />
589<br />
590<br />
591<br />
592<br />
593<br />
594<br />
595<br />
596<br />
597<br />
598<br />
599<br />
600<br />
601<br />
602<br />
603<br />
604<br />
605<br />
606<br />
607<br />
608<br />
609<br /></td>
<td style="white-space:nowrap;padding:5pt;color:#373737;background-color:#FFFCF2;">
<div style="color:#373737;background-color:#FFFCF2;"><span style="color:#008000;background-color:#FFFCF2;">/************************************************************************</span><br /><span style="color:#008000;background-color:#FFFCF2;"> ファイルパス関数群
(Path.ahk)</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;"> DllCallにてAPIを使用 (\
ダメ文字対応)</span><br /><span style="color:#008000;background-color:#FFFCF2;">
(上位からの引数に問題がない限り本関数内で新たに文字化けを起こすことはない筈)</span><br /><span style="color:#008000;background-color:#FFFCF2;"> グローバル変数 :
なし</span><br /><span style="color:#008000;background-color:#FFFCF2;"> 各関数の依存性 :
なし(必要関数だけ切出してコピペでも使えます)</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;"> A</span><span style="color:#FF0000;background-color:#FFFF00;">utoHotkey Version:
1.0.47.05</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Language:
Japanease</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Platform:
Win</span><span style="color:#FF0000;background-color:#FFFF00;">9x/</span><span style="color:#008000;background-color:#FFFCF2;">NT IE 4以上 (SHLWAPI.DLL使用)</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Author:
eamat. 2008.01.30</span><br /><span style="color:#008000;background-color:#FFFCF2;">************************************************************************</span><br /><span style="color:#008000;background-color:#FFFCF2;">2008.12.10</span><br /><span style="color:#008000;background-color:#FFFCF2;">2009.01.24
コメント修正</span><br /><span style="color:#008000;background-color:#FFFCF2;">2009.06.20 関数名修正
PathIs_Relative() → Path_IsRelative()</span><br /><span style="color:#008000;background-color:#FFFCF2;">2009.07.26</span>
<span style="color:#FF0000;background-color:#FFFF00;">パラメータ修正
Path_Canonicalize()</span><br /><span style="color:#FF0000;background-color:#FFFF00;">2009.10.22 SplitPath() 追加
(AHK本来の SplitPathコマンド互換)</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><div style="color:#000080;background-color:#EEEEEE;">
_PathAutoExecuteSample:</div>
<span style="color:#008000;background-color:#FFFCF2;">;コマンドラインのテスト</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;このファイル(path.ahk)に何かファイルをドラッグして起動してみて下さい。</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>(!_PathCommandLineCheck())
{<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;関数の戻り値チェック見本
(うざいです)</span><br />
_PathTest()<br />
}<br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 判定系
(存在チェック)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;--- ファイルの有無をチェックする 戻り値
0:なし 1:あり ---</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
ディレクトリ指定時も1が返る。UNCパス(\\%A_ComputerName%\hoge.txt 等)でもOK</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_FileExists(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathFileExists<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--- ディレクトリが存在するかチェックする
戻り値 0:なし 0以外:あり ---</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
UNCパス(\\%A_ComputerName%\ 等)もOK</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 末尾 \
はあってもなくてもいい模様</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsDirectory(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsDirectory<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----
存在しているUNC(ネットワーク)パスかどうか 0:なし 1:あり ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_IsUNCServerShare(path) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsUNCServerShare<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><span style="color:#008000;background-color:#FFFCF2;">/*</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 何故か上手くいかない</span><br /><span style="color:#008000;background-color:#FFFCF2;">;---
既存のフォルダがシステムフォルダ属性を持つかどうか ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;"><span style="color:#008000;background-color:#FFE6EE;">Path_IsSystemFolder(path="",Attr=0)
{</span></div>
<span style="color:#008000;background-color:#FFFCF2;">; Return
DllCall("SHLWAPI.DLL\PathIsSystemFolder</span><span style="color:#FF0000;background-color:#FFFF00;">A</span><span style="color:#008000;background-color:#FFFCF2;">", Str,path, UInt,Attr,
Int)</span><br /><span style="color:#008000;background-color:#FFFCF2;">}</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 判定系 (文字列の記述ルール
チェック)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ※
実際に存在しないパスかの判断ではない</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
文字列がファイル名のみ仕様か(":"や"\"などの区切り文字が含まれていないか)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値 0: ":"や"\"あり
1:ファイル名のみ</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsFileSpec(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsFileSpec<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
指定されたパスの先頭がPrefixで指定された文字列で始まっているか判定</span><br /><span style="color:#008000;background-color:#FFFCF2;">; prefix : "C:\\" or
"." or ".." or "..\\"</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値 0:なし
1:あり</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_IsPrefix(prefix,path) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsPrefix<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,prefix, Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----- 文字列が相対パスか絶対パスかを判断
0:絶対 1:相対 ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsRelative(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsRelative<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----- 文字列がルートかどうか判断 0:無効
1:有効 ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsRoot(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsRoot<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;-----
2つのパス文字列が同一のルート要素を持つかどうか判断 0:無効 1:有効 ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_IsSameRoot(path1,path2) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsSameRoot<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path1, Str,path2, Int)<br />
}<br /><span style="color:#008000;background-color:#FFFCF2;">;--- 文字列がURLとして解釈できるか
0:できない 1:できる ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsURL(url) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsURL<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,url, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;========= ネットワークパス
===========</span><br /><span style="color:#008000;background-color:#FFFCF2;">;--- 文字列が
UNC(ネットワークパス)かどうか 0:無効 1:有効 ---</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
記述形式の判断のみ、実際に存在しないパスかの判断はなし</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsUNC(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsUNC<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--- 文字列が
サーバーパスのみのUNC(ネットワークパス)かどうか 0:無効 1:有効 ---</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ex) \\hoge :
1</span><br /><span style="color:#008000;background-color:#FFFCF2;">; \\ :
1</span><br /><span style="color:#008000;background-color:#FFFCF2;">; \\hoge\ :
0</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_IsUNCServer(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathIsUNCServer<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
指定のファイル名がワイルドカードを使ったファイルスペックに一致するか</span><br /><span style="color:#008000;background-color:#FFFCF2;">; filename
:ファイル名</span><br /><span style="color:#008000;background-color:#FFFCF2;">; spec :ファイルスペック
(*.txt や a?c.exeなど)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値 0:一致しない
1:する</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_MatchSpec(filename,
spec) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathMatchSpec<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,filename, Str,spec, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
文字cをパスに使用する際にどのように使用できるかを判定する。</span><br /><span style="color:#008000;background-color:#FFFCF2;">; c : 判定する文字
(char)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
戻り値:判定結果のビットマスク値で、以下のフラグの組み合わせ</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; GCT_INVALID 0x00
文字は、パスで有効はない</span><br /><span style="color:#008000;background-color:#FFFCF2;">; GCT_LFNCHAR 0x01
文字は、ロングファイル名で有効です</span><br /><span style="color:#008000;background-color:#FFFCF2;">; GCT_SEPARATOR 0x08
文字は、パスのセパレータです</span><br /><span style="color:#008000;background-color:#FFFCF2;">; GCT_SHORTCHAR 0x02
文字は、ショートファイル名(8.3)で有効です</span><br /><span style="color:#008000;background-color:#FFFCF2;">; GCT_WILD 0x04
文字は、ワイルドカード文字です (*?)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_GetCharType(c)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathGetCharType<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Char,<span style="color:#4A0095;background-color:#FFFCF2;">Asc</span>(c),
Uint)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 変換系</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;--- ロングファイルネームを返す (※
Win95非対応) ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_GetLongPathName(filePath) {</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(<span style="color:#FF0000;background-color:#FFFF00;">srcPath,</span> <span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(dstPath,</span> <span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&srcPath,Str,filePath)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("GetLongPathName",
Uint,&srcPath, Uint,&dstPath, Uint,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&dstPath,Str,dstPath</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
dstPath<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--- 8.3形式のファイルネームを返す (※
Win95非対応) ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_GetShortPathName(filePath) {</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(<span style="color:#FF0000;background-color:#FFFF00;">srcPath,</span> <span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(dstPath,</span> <span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&srcPath,Str,filePath)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("GetShortPathName",
Uint,&srcPath, Uint,&dstPath, Uint,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&dstPath,Str,dstPath</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
dstPath<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- フルパスを生成する
(カレントDirが付加される) ----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_SearchAndQualify(file) {</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(t,<span style="color:#0000FF;background-color:#FFFCF2;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathSearchAndQualifyA</span>",
Str,file, str,t, UInt,<span style="color:#0000FF;background-color:#FFFCF2;">260</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">/* 何故か上手くいかない</span><br /><span style="color:#008000;background-color:#FFFCF2;">;---
パスの形式を統一するためにすべての文字を小文字へ変換(除ルート文字)</span><br /><div style="color:#FF0000;background-color:#FFE6EE;"><span style="color:#008000;background-color:#FFE6EE;">Path_MakePretty(path)
{</span></div>
<span style="color:#008000;background-color:#FFFCF2;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity(t,260,0)</span><br /><span style="color:#FF0000;background-color:#FFFF00;">
DllCall("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;">
DllCall("SHLWAPI.DLL\PathMakePrettyA", Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> return t</span><br /><span style="color:#008000;background-color:#FFFCF2;">}</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----
パス名の最後尾にバックスラッシュをつける -----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_AddBackslash(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathAddBackslashA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><span style="color:#008000;background-color:#FFFCF2;">;--- パス名の最後尾のバックスラッシュを削除
---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_RemoveBackslash(path) {</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRemoveBackslashA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--- 文字列から最初と最後のスペースを削除
(Trim?) ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_RemoveBlanks(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRemoveBlanksA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- パス名がスペースを含む時に""でくくる
---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_QuoteSpaces(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathQuoteSpacesA", Str,
t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><span style="color:#008000;background-color:#FFFCF2;">;----
""で囲まれたパス名からマークを取り除く ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_UnquoteSpaces(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathUnquoteSpacesA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
フルパス名から拡張子だけを変更したパス名を取得する</span><br /><span style="color:#008000;background-color:#FFFCF2;">; path
対象パス</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ext
変更する拡張子</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_RenameExtension(path,ext) {</div>
ext := ("." != <span style="color:#4A0095;background-color:#FFFCF2;">SubStr</span>(ext,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>)) ? "." ext : ext
<span style="color:#008000;background-color:#FFFCF2;">;"."がない時は付加</span><br />
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRenameExtensionA",
Str,t, Str,ext)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">Return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 抽出系</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;---- パス名からルート情報を取得
-----</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ex) c:\hoge.txt ->
c:\</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_StripToRoot(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathStripToRootA", Str,
t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- パス名からドライブ番号を取得
(ドライブ a:→ 0番 エラー時:-1) -----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_GetDriveNumber(path) {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathGetDriveNumber<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Int)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- フルパス名からファイル名のみを取り出す
-----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_FindFileName(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathFindFileName<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Str)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- 指定されたファイル名からパス部分を削除
-----</span><br /><span style="color:#008000;background-color:#FFFCF2;">; (Path_FindFileName()
と結果同じ?)</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_StripPath(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathStripPathA", Str,
t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
フルパス名からディレクトリを取出す</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ※
パスから\とその後ろのファイル名を削除する</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
\なしDIRを指定すると最後のフォルダが削られるので注意!</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ex
c:\foo\bar\hoge.txt -> c:\foo\bat</span><br /><span style="color:#008000;background-color:#FFFCF2;">; c:\foo\bar\
-> c:\foo\bar</span><br /><span style="color:#008000;background-color:#FFFCF2;">; c:\foo\bar
-> c:\foo</span><br /><span style="color:#008000;background-color:#FFFCF2;">;--------------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_RemoveFileSpec(path) {</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRemoveFileSpecA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- パスから共有名部分を除く
---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_SkipRoot(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathSkipRoot<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str, path, Str)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- フルパス名から拡張子だけを取り出す
------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_FindExtension(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathFindExtension<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Str)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----
フルパス名から拡張子のみを除いたパス名を取得する ----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_RemoveExtension(path) {</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRemoveExtensionA",
Str, t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;-----
Pathで指定されたコマンド文から、コマンドライン引数を抽出 ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_GetArgs(path)
{</div>
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathGetArgs<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, str)<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---
Pathで指定されたコマンド文から、引数部分を削除 ---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_RemoveArgs(path)
{</div>
<span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("msvcrt.dll\_mbscpy",UInt,&t,Str,path)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathRemoveArgsA",
Str,t)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">return</span> <span style="color:#FF0000;background-color:#FFFF00;">t</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
ファイルパス文字列を指定した長さに縮める</span><br /><span style="color:#008000;background-color:#FFFCF2;">; path
対象パス</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ext
何文字に縮めるか</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_CompactPathEx(Path,Max) {</div>
<span style="color:#008000;background-color:#FFFCF2;">;※
2バイト文字があると文字化け</span><span style="color:#FF0000;background-color:#FFFF00;">する</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity</span><span style="color:#FF0000;background-color:#FFFF00;">(t,</span><span style="color:#FF0000;background-color:#FFFF00;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathCompactPathExA</span>",
Str,t, Str,path, UInt,<span style="color:#9425A7;background-color:#FFFCF2;">max</span>, Uint,"\")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
2つのパス名の先頭から共通するディレクトリ名を取得する</span><br /><span style="color:#008000;background-color:#FFFCF2;">; p1 p2 比較
対象パス</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-----------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_CommonPrefix(p1,
p2) {</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(t,<span style="color:#0000FF;background-color:#FFFCF2;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathCommonPrefixA</span>",
Str,p1, Str,p2, str,t)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">/* ;値取得できず。
断念</span><br /><div style="color:#FF0000;background-color:#FFE6EE;"><span style="color:#008000;background-color:#FFE6EE;">Path_FIndOnPath(file,paths)
{</span></div>
<span style="color:#008000;background-color:#FFFCF2;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">VarSetCapacity(t,260,0)</span><br /><span style="color:#FF0000;background-color:#FFFF00;">
DllCall("msvcrt.dll\_mbscpy",UInt,&t,Str,file)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> a :=
DllCall("SHLWAPI.DLL\PathFIndOnPathA", Str,t, str,paths, Int)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> return t</span><br /><span style="color:#008000;background-color:#FFFCF2;">}</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 相対パス関連</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 相対パスを作成</span><br /><span style="color:#008000;background-color:#FFFCF2;">; From :
ベースパス</span><br /><span style="color:#008000;background-color:#FFFCF2;">; To :
相対にするパス</span><br /><span style="color:#008000;background-color:#FFFCF2;">; atr :
ファイル属性を指定</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ディレクトリ 0x10
(FILE_ATTRIBUTE_DIRECTORY)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ファイル 0x20
(FILE_ATTRIBUTE_ARCHIVE)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">
Path_RelativePathTo(From,atrFrom,To,atrTo) {</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(t,<span style="color:#0000FF;background-color:#FFFCF2;">260</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>)<br /><br />
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathRelativePathTo<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,t<br />
, str,From, Uint,atrFrom<br />
, str,To, Uint,atrTo)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ファイルパス文字列を結合 (..\
等の展開もOK)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 末尾に \
がなくても自動で付加される。</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; path
対象パス</span><br /><span style="color:#008000;background-color:#FFFCF2;">; more
繋げるパス</span><br /><span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_Combine(path,more)
{</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(t,<span style="color:#0000FF;background-color:#FFFCF2;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathCombineA</span>",
Str,t, str,path, str,more)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---- ..\ を展開(絶対パスへ)
----</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_Canonicalize(path)
{</div>
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(t,<span style="color:#0000FF;background-color:#FFFCF2;">260</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">0</span><span style="color:#FF0000;background-color:#FFFF00;">)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">DllCall</span><span style="color:#FF0000;background-color:#FFFF00;">("SHLWAPI.DLL\PathCanonicalizeA</span>",
Str,t, str,path)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> t<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
AHKコマンド互換関数</span><br /><span style="color:#008000;background-color:#FFFCF2;">;=============================================================================</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;--- SplitPath互換 ダメ文字対応版
---</span><br /><div style="color:#FF0000;background-color:#FFE6EE;">Path_SplitPath(path, byref
OutFileName="", byref OutDir="", byref OutExtension="", byref OutNameNoExt="",
byref OutDrive=""){</div>
<br />
<span style="color:#008000;background-color:#FFFCF2;">;URL処理は本家に任せる</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>(<span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(path,"://"))
{<br />
<span style="color:#5353FF;background-color:#FFFCF2;">SplitPath</span>,path,OutFileName,OutDir,OutExtension,OutNameNoExt,OutDrive<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;フォルダパスを除いたファイル名</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;フォルダパスのみの場合は、空になる</span><br />
OutFileName := <span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathFindFileName<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str,path, Str)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(OutFileName,"(<span style="color:#800080;background-color:#FFF4FF;">?:</span>^|[^<span style="color:#800080;background-color:#FFF4FF;">\x80</span>-<span style="color:#800080;background-color:#FFF4FF;">\x9F\xE0</span>-<span style="color:#800080;background-color:#FFF4FF;">\xFC</span>])<span style="color:#800080;background-color:#FFF4FF;">\\</span>"))<br />
OutFileName := <span style="color:#EE7264;background-color:#FFFCF2;">""</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;フォルダパス(最後の「\」を含まない)</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;ファイル名のみの場合は、空になる。</span><br />
<span style="color:#4A0095;background-color:#FFFCF2;">VarSetCapacity</span>(OutDir,<span style="color:#0000FF;background-color:#FFFCF2;">260</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>)<br />
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("msvcrt.dll\_mbscpy",UInt,&OutDir,Str,path)<br />
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathRemoveFileSpec<span style="color:#FF0000;background-color:#FFFF00;">A</span>",
Str, OutDir)<br />
OutDir := <span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(OutDir,"(<span style="color:#800080;background-color:#FFF4FF;">?<=</span>[^<span style="color:#800080;background-color:#FFF4FF;">\x80</span>-<span style="color:#800080;background-color:#FFF4FF;">\x9F\xE0</span>-<span style="color:#800080;background-color:#FFF4FF;">\xFC</span>])<span style="color:#800080;background-color:#FFF4FF;">\\$</span>")<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;ファイルの拡張子(「.」は含まない)</span><br />
OutExtension := <span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("SHLWAPI.DLL\PathFindExtension<span style="color:#FF0000;background-color:#FFFF00;">A</span>"<br />
,Str,path, Str),"^<span style="color:#800080;background-color:#FFF4FF;">\.</span>")<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;拡張子を除いた名前部分を格納する</span><br />
OutNameNoExt :=<span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(OutFileName,"<span style="color:#800080;background-color:#FFF4FF;">\.</span>.*<span style="color:#EE7264;background-color:#FFFCF2;">$</span>")<br /><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;ドライブ文字(「:」付き)やネットワーク上のパスのマシン名を格納する</span><br />
OutDrive:=<span style="color:#4A0095;background-color:#FFFCF2;">SubStr</span>(path,<span style="color:#0000FF;background-color:#FFFCF2;">2</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>)=":" ? <span style="color:#4A0095;background-color:#FFFCF2;">SubStr</span>(path,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,<span style="color:#0000FF;background-color:#FFFCF2;">2</span>)<br />
: <span style="color:#4A0095;background-color:#FFFCF2;">SubStr</span>(path,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,<span style="color:#0000FF;background-color:#FFFCF2;">2</span>)="<span style="color:#800080;background-color:#FFF4FF;">\\</span>" ? <span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(path<br />
,"(<span style="color:#800080;background-color:#FFF4FF;">?<=</span>[^<span style="color:#800080;background-color:#FFF4FF;">\x80</span>-<span style="color:#800080;background-color:#FFF4FF;">\x9F\xE0</span>-<span style="color:#800080;background-color:#FFF4FF;">\xFC</span>])<span style="color:#800080;background-color:#FFF4FF;">\\.</span>*<span style="color:#EE7264;background-color:#FFFCF2;">$</span>",<span style="color:#EE7264;background-color:#FFFCF2;">""</span>,<span style="color:#EE7264;background-color:#FFFCF2;">""</span>,<span style="color:#0000FF;background-color:#FFFCF2;">-1</span>,<span style="color:#0000FF;background-color:#FFFCF2;">3</span>)<br />
: <span style="color:#EE7264;background-color:#FFFCF2;">""</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 動作確認用 内部ルーチン</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
単体起動時にAutoExecuteから呼ばれてるだけなので削除しても問題なし</span><br /><br /><div style="color:#FF0000;background-color:#FFE6EE;">_PathCommandLineCheck()
{</div>
<span style="color:#9425A7;background-color:#FFFCF2;">global</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">local</span>
filename<br />
filename = <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#0000FF;background-color:#FFFCF2;">1</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(filename) {<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,
コマンドライン引数<span style="color:#EE7264;background-color:#FFFCF2;">`n%</span><span style="color:#0000FF;background-color:#FFFCF2;">1</span><span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>※ AHKは
D&Dでファイルを渡すと<span style="color:#0000FF;background-color:#FFFCF2;">8.3</span>形`式ファイルパスになるっぽい<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#0000FF;background-color:#FFFCF2;">1</span><br />
}<br />
}<br /><br /><div style="color:#FF0000;background-color:#FFE6EE;">_PathTest() {</div>
a := <span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptFullPath</span><br /><br />
r1 := Path_FileExists(a)<br />
r2 := Path_FileExists(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>
,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ファイル存在チ`ェック,Path_FileExists(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%</span>
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_ScriptDir%</span> =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsDirectory(a)<br />
r2 := Path_IsDirectory(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
r3 := Path_IsDirectory("c:\hoge")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>
,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ディレクトリ存在チ`ェック,Path_IsDirectory(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%</span>
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_ScriptDir%</span> =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>c:\hoge = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsUNCServerShare("<span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt") <span style="color:#008000;background-color:#FFFCF2;">;無効なパス</span><br />
p := "<span style="color:#800080;background-color:#FFF4FF;">\\</span>"
<span style="color:#EE7264;background-color:#FFFCF2;">A_ComputerName</span>
"\共有フォルダ" <span style="color:#008000;background-color:#FFFCF2;">;←
※有効なパスを入れて</span><br />
r2 := Path_IsUNCServerShare(p)<br />
r3 := Path_IsUNCServerShare(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptFullPath</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>
,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ネットワークパス存在チ`ェック,Path_IsUNCServerShare(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span><span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%</span>p<span style="color:#EE7264;background-color:#FFFCF2;">%</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_ScriptFullPath%</span> =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsFileSpec(a)<br />
r2 := Path_IsFileSpec(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptName</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ファイル仕様チ`ェック(ファイル名のみ有効),Path_IsFileSpec(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%</span>
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_ScriptName%</span> =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsPrefix("..\",a)<br />
r2 := Path_IsPrefix("..\","..<span style="color:#800080;background-color:#FFF4FF;">\S</span>ystem32<span style="color:#800080;background-color:#FFF4FF;">\r</span>eadme.txt")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パスの先頭の文字列を判定,Path_IsPrefix(prefix,path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>prefix:
..\<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>target:
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span> --> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>prefix: ..\<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>target: ..<span style="color:#800080;background-color:#FFF4FF;">\S</span>ystem32<span style="color:#800080;background-color:#FFF4FF;">\r</span>eadme.txt<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> --> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsRelative(a)<br />
r2 := Path_IsRelative("..<span style="color:#800080;background-color:#FFF4FF;">\S</span>ystem32<span style="color:#800080;background-color:#FFF4FF;">\r</span>eadme.txt")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パスの相対判定,Path_IsRelative(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>..<span style="color:#800080;background-color:#FFF4FF;">\S</span>ystem32<span style="color:#800080;background-color:#FFF4FF;">\r</span>eadme.txt = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
<br />
r1 := Path_IsRoot(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
r2 := Path_IsRoot("Q:\")<br />
r3 := Path_IsRoot("<span style="color:#800080;background-color:#FFF4FF;">\\</span>hoge\")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ルートディレクトリかどうか,Path_IsRoot(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n%A_ScriptDir%</span> =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>Q:\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#800080;background-color:#FFF4FF;">\\</span>hoge\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsSameRoot(a,<span style="color:#EE7264;background-color:#FFFCF2;">A_AhkPath</span>)<br />
r2 := Path_IsSameRoot(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span>, <span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,<span style="color:#0000FF;background-color:#FFFCF2;">2</span>つのパスが同一のルートか,Path_IsSameRoot(path1,path2)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span>1:
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>2: <span style="color:#EE7264;background-color:#FFFCF2;">%A_AhkPath%`n</span> -->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>1: <span style="color:#EE7264;background-color:#FFFCF2;">%A_WinDir%`n</span>2: <span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptDir%`n</span> -->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsURL("http://hoge/")<br />
r2 := Path_IsURL("<span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,文字列がURLか,Path_IsURL(url)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>http://hoge/ =
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsUNC(a)<br />
r2 := Path_IsUNC("<span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パスがネットワークパスか,Path_IsUNC(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_IsUNCServer("<span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo")<br />
r2 := Path_IsUNCServer("<span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo\")<br />
r3 := Path_IsUNCServer("<span style="color:#800080;background-color:#FFF4FF;">\\</span>")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パスがネットワークルートか,Path_IsUNCServer(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n</span><span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#800080;background-color:#FFF4FF;">\\</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_MatchSpec(a,"*.exe")<br />
r2 := Path_MatchSpec(a,"*.ahk")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ファイルMatchチ`ェック,Path_MatchSpec(filename,
spec)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>*.exe = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span> *.ahk = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_GetCharType("/")<br />
r2 := Path_GetCharType(",")<br />
r3 := Path_GetCharType("a")<br />
r4 := Path_GetCharType("\")<br />
r5 := Path_GetCharType("*")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パス文字種判定,Path_GetCharType(c)
<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n</span>/ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>, = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span><span style="color:#9425A7;background-color:#FFFCF2;">a</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r4<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>* = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r5<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_GetLongPathName(a) <span style="color:#008000;background-color:#FFFCF2;">;ロングパス</span><br />
r2 := Path_GetShortPathName(r1) <span style="color:#008000;background-color:#FFFCF2;">;8.3形式</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,ロング/ショートファイル,Path_GetLongPathName(filePath)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>Path_GetShortPathName(filePath)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span>org
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>LongFile = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>ShortFile = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_SearchAndQualify("hoge.txt")<br />
r2 := Path_SearchAndQualify("..\hage.txt")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パスを補完して絶対パスに,Path_SearchAndQualify(file)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span>hoge.txt<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>hage.txt<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>-> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
<br /><span style="color:#008000;background-color:#FFFCF2;">; r1 :=
Path_MakePretty("C:\HOGE\HOGE.txt")</span><br /><span style="color:#008000;background-color:#FFFCF2;">; msgbox パスを小文字へ`n
C:\HOGE\HOGE.txt`n-->%r1%</span><br /><br />
r1 := Path_AddBackslash(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span>)<br />
r2 := Path_AddBackslash(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span> . "\")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,バックスラッシュ付加,Path_AddBackslash(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%A_WinDir%</span>
= <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_WinDir%</span>\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_RemoveBackslash(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span>)<br />
r2 := Path_RemoveBackslash(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span> . "\")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
バックスラッシュ削除,Path_RemoveBackslash(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n%A_WinDir%</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%A_WinDir%</span>\ = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := " " . <span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span> . " "<br />
r2 := Path_RemoveBlanks(r1)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
スペース削除,Path_RemoveBlanks(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n</span>[<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span>]<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>[<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span>]<br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_QuoteSpaces(<span style="color:#EE7264;background-color:#FFFCF2;">A_WinDir</span>)<br />
r2 := Path_QuoteSpaces(<span style="color:#EE7264;background-color:#FFFCF2;">A_ProgramFiles</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>, スペース含むパスに" "
付加,Path_QuoteSpaces(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r3 := Path_UnquoteSpaces(r1 . "\hoge.exe")<br />
r4 := Path_UnquoteSpaces(r2)<br />
r5 := Path_UnquoteSpaces(r2 . "\hoge.exe")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>, " "
除去,Path_UnquoteSpaces(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span>\hoge.exe = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%`n%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span> = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r4<span style="color:#EE7264;background-color:#FFFCF2;">%`n%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span>\hoge.exe = <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r5<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
b := Path_RenameExtension(a,".old") <span style="color:#008000;background-color:#FFFCF2;">;拡張子を変更</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>
,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,拡張子変更,Path_RenameExtension(path,ext)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n%</span>b<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_GetDriveNumber(a)<br />
r2 := Path_FindFileName(a)<br />
r3 := Path_FindExtension(a)<br />
r4 := Path_RemoveExtension(a)<br />
r5 := Path_Remove<span style="color:#FF0000;background-color:#FFFF00;">Extension(r1)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> r6 :=
Path_RemoveFileSpec(a)</span><br /><span style="color:#FF0000;background-color:#FFFF00;"> </span> <span style="color:#FF0000;background-color:#FFFF00;">msgbox</span><span style="color:#FF0000;background-color:#FFFF00;">,</span><span style="color:#FF0000;background-color:#FFFF00;">1</span><span style="color:#FF0000;background-color:#FFFF00;">,抽出系,Path_GetDriveNumber(path)</span><span style="color:#FF0000;background-color:#FFFF00;">`n</span><span style="color:#FF0000;background-color:#FFFF00;">Path_FindFileName(path)</span><span style="color:#FF0000;background-color:#FFFF00;">`n</span><span style="color:#FF0000;background-color:#FFFF00;">Path_FindExtension(path)</span><span style="color:#FF0000;background-color:#FFFF00;">`n</span><span style="color:#FF0000;background-color:#FFFF00;">Path_RemoveExtension(path)</span><span style="color:#FF0000;background-color:#FFFF00;">`n</span><span style="color:#FF0000;background-color:#FFFF00;">Path_RemoveFileSpec(path)</span><span style="color:#FF0000;background-color:#FFFF00;">`n`n</span>
<span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">a</span><span style="color:#FF0000;background-color:#FFFF00;">%`n`n</span><span style="color:#FF0000;background-color:#FFFF00;">ドライブ</span><span style="color:#FF0000;background-color:#FFFF00;">No</span><span style="color:#FF0000;background-color:#FFFF00;">. =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r1</span><span style="color:#FF0000;background-color:#FFFF00;">%`n</span><span style="color:#FF0000;background-color:#FFFF00;">Dir除去 =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r2</span><span style="color:#FF0000;background-color:#FFFF00;">%`n</span><span style="color:#FF0000;background-color:#FFFF00;">拡張子 =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r3</span><span style="color:#FF0000;background-color:#FFFF00;">%`n</span><span style="color:#FF0000;background-color:#FFFF00;">拡張子除去 =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r4</span><span style="color:#FF0000;background-color:#FFFF00;">%`n</span><span style="color:#FF0000;background-color:#FFFF00;">Dir&拡張子除去 =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r5</span><span style="color:#FF0000;background-color:#FFFF00;">%`n</span><span style="color:#FF0000;background-color:#FFFF00;">ファイル名除去 =</span> <span style="color:#FF0000;background-color:#FFFF00;">%</span><span style="color:#FF0000;background-color:#FFFF00;">r6</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_StripToRoot(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
ルート情報取得,Path_StripToRoot(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%A_ScriptDir%`n</span>-><span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_RemoveFileSpec(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
ファイル名除去,Path_RemoveFileSpec(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%A_ScriptDir%`n</span>-><span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_StripPath(a)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
ファイル名からパス部分を削除,Path_StripPath(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>-><span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 = <span style="color:#800080;background-color:#FFF4FF;">\\f</span>oo<span style="color:#800080;background-color:#FFF4FF;">\b</span>ar\hoge.txt<br />
r2 := Path_SkipRoot(a)<br />
r3 := Path_SkipRoot(r1)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,
パスから共有名部分を除去,Path_SkipRoot(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span> <span style="color:#EE7264;background-color:#FFFCF2;">`n%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>-> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>-> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
c = <span style="color:#EE7264;background-color:#FFFCF2;">%A_AhkPath%</span> /hoge
"<span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptDir%</span>"<br />
r1 := Path_GetArgs(c)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,コマンドライン抽出,Path_GetArgs(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>c<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>
--> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_RemoveArgs(c)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,パラメータ削除,Path_RemoveArgs(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>c<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>
--> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_CommonPrefix(a,<span style="color:#EE7264;background-color:#FFFCF2;">A_AhkPath</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,共通Dir抽出,Path_CommonPrefix(p1,
p2)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span>1:<span style="color:#EE7264;background-color:#FFFCF2;">%</span>a<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>2:<span style="color:#EE7264;background-color:#FFFCF2;">%A_AhkPath%`n</span> -->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r2 := Path_Combine(r1,<span style="color:#EE7264;background-color:#FFFCF2;">A_AhkPath</span>)<br />
r3 := Path_Combine(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>,<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptName</span>)<br />
r4 := Path_Combine(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptDir</span>,".<span style="color:#800080;background-color:#FFF4FF;">\.</span>.\hoge.exe")<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,path連結,Path_Combine(path,more)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n`n</span>1:<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>2:<span style="color:#EE7264;background-color:#FFFCF2;">%A_AhkPath%`n</span>
--> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>1:<span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptDir%`n</span>2:<span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptName%`n</span> -->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r3<span style="color:#EE7264;background-color:#FFFCF2;">%`n`n</span>1:<span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptDir%`n</span>2:
.<span style="color:#800080;background-color:#FFF4FF;">\.</span>.\hoge.exe<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>
--><span style="color:#EE7264;background-color:#FFFCF2;">%</span>r4<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 := Path_RelativePathTo(<span style="color:#EE7264;background-color:#FFFCF2;">A_ScriptFullPath</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x20</span>,<span style="color:#EE7264;background-color:#FFFCF2;">A_AhkPath</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x20</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,相対パス作成,Path_RelativePathTo(From,atrFrom,To,atrTo)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n</span>1:
<span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptFullPath%</span>
<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>2: <span style="color:#EE7264;background-color:#FFFCF2;">%A_AhkPath%`n</span>-->
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br />
r1 = <span style="color:#EE7264;background-color:#FFFCF2;">%A_ScriptDir%</span><span style="color:#800080;background-color:#FFF4FF;">\.</span>.<span style="color:#800080;background-color:#FFF4FF;">\.</span>.\hoge.txt<br />
r2 := Path_Canonicalize(r1)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">msgbox</span>,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>,絶対パスへ,Path_Canonicalize(path)<span style="color:#EE7264;background-color:#FFFCF2;">`n`n%</span>r1<span style="color:#EE7264;background-color:#FFFCF2;">%`n</span>
--> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>r2<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">IfMsgBox</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Cancel</span>, <span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
}<br /><br /></div>
</td>
</tr></table></div>
表示オプション
横に並べて表示:
変化行の前後のみ表示: