윈도우를 재설치하면 각종 설정 파일을 다시 만드는 것이 매우 귀찮다. 이 경우에는 D:\etc 등에 설정 파일을 복사해 두고 스크립트로 복사해버리면 편하다.
hosts 파일을 복사하기. 이것은 관리자 권한이 필요하다.
copy_admin.bat
기타 설정 파일 복사하기.
copy.bat
윈도우 비스타나 7의 경우 쉘에서 파일을 복사할 때 같은 이름의 파일이 있으면, 파일 크기와 수정 날짜를 보여주면서 덮어 쓸지 말지 물어보는데 이 기능은 꽤 유용하다.
VBS는 처음 써 보는데 아직 set이나 dim이 뭔지 모르겠고, 폴더 만드는 법도 모르겠다. 이 코드도 인터넷을 뒤지면서 조각조각 모은 것이다.
copy.vbs
hosts 파일을 복사하기. 이것은 관리자 권한이 필요하다.
copy_admin.bat
type %~dp0\hosts >> %SystemRoot%\system32\drivers\etc\hosts
pause
기타 설정 파일 복사하기.
copy.bat
mkdir %AppData%\NetSarang\Xshell\Sessions\old\이 방법의 경우 같은 이름의 파일이 있어도 그냥 덮어 써 버린다. /-Y 옵션을 주면 덮어쓸지 말지 물어보지만 여전히 불편하다.
copy Xshell\* %AppData%\NetSarang\Xshell\Sessions\
mkdir %AppData%\NetSarang\Xftp\Sessions\
copy Xftp\* %AppData%\NetSarang\Xftp\Sessions\
copy _vimrc %USERPROFILE%\
copy foobar\Core.cfg %AppData%\foobar2000\configuration
pause
윈도우 비스타나 7의 경우 쉘에서 파일을 복사할 때 같은 이름의 파일이 있으면, 파일 크기와 수정 날짜를 보여주면서 덮어 쓸지 말지 물어보는데 이 기능은 꽤 유용하다.
VBS는 처음 써 보는데 아직 set이나 dim이 뭔지 모르겠고, 폴더 만드는 법도 모르겠다. 이 코드도 인터넷을 뒤지면서 조각조각 모은 것이다.
copy.vbs
set objShell = CreateObject("Shell.Application")
set WshShell = WScript.CreateObject("WScript.Shell")
appdata = WshShell.ExpandEnvironmentStrings("%AppData%\")
userprofile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%\")
current = Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\"))
' copy XShell
set destFolder = objShell.NameSpace(appdata & "NetSarang\Xshell\Sessions")
set srcFolder = objShell.NameSpace(current & "Xshell")
if not destFolder is nothing then
set srcFolderItems = srcFolder.Items()
destFolder.CopyHere(srcFolderItems)
end if
' copy Xftp
set destFolder = objShell.NameSpace(appdata & "NetSarang\Xftp\Sessions")
set srcFolder = objShell.NameSpace(current & "Xftp")
if not destFolder is nothing then
set srcFolderItems = srcFolder.Items()
destFolder.CopyHere(srcFolderItems)
end if
' copy _vimrc
set destFolder = objShell.NameSpace(userprofile)
if not destFolder is nothing then
destFolder.CopyHere(current & "_vimrc")
end if
' copy foobar configuration
set destFolder = objShell.NameSpace(appdata & "foobar2000\configuration")
if not destFolder is nothing then
destFolder.CopyHere(current & "foobar\Core.cfg")
end if