Last active
August 29, 2015 14:21
-
-
Save hymkor/7582192ce58c0e4aaf7b to your computer and use it in GitHub Desktop.
mklink が使いにくいので JScript でラッパー作った(ln.cmd)- バッチファイル化 & ハードリンク・ジャンクションの時は同一セッションで実行するようにした
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@if (0) == (0) echo off | |
cscript //nologo /E:JScript "%~f0" %* | |
exit /b %ERRORLEVEL% | |
@end | |
var args = WScript.Arguments | |
if( args.length < 2 ){ | |
WScript.Echo("Usage: cscript ln.js [-s] FILENAME TARGET"); | |
WScript.Quit(1); | |
} | |
var fsObj = new ActiveXObject("Scripting.FileSystemObject"); | |
var start = 0; | |
var symbolic = false; | |
if( args.Item(0) == "-s" ){ | |
symbolic = true; | |
++start; | |
} | |
var src = fsObj.GetAbsolutePathName(args.Item(start+0)); | |
var dst = fsObj.GetAbsolutePathName(args.Item(start+1)); | |
if( fsObj.FolderExists(dst) ){ | |
dst = fsObj.BuildPath(dst,fsObj.GetFileName(src)); | |
} | |
var opt="" | |
var action="open" | |
if( symbolic ){ | |
if( fsObj.FolderExists(src) ){ | |
opt = "/D"; | |
} | |
action = "runas" | |
}else{ | |
opt = (fsObj.FolderExists(src) ? "/J" : "/H"); | |
} | |
var param="/c mklink "+opt+' "'+dst+'" "'+src+'"'; | |
if( symbolic ){ | |
var shellApp = new ActiveXObject("Shell.Application"); | |
shellApp.ShellExecute("cmd.exe",param,"",action); | |
}else{ | |
var wshell = new ActiveXObject("WScript.Shell"); | |
var oExec = wshell.Exec("cmd.exe " + param); | |
while( oExec.Status == 0 ){ | |
WScript.Sleep(100); | |
} | |
} | |
WScript.Echo("cmd.exe " + param); | |
WScript.Echo(" " + src + "\n--> " + dst); | |
WScript.Quit(0); | |
// vim:set ft=JavaScript: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
今後は https://github.com/zetamatta/Jatchfiles にて管理します