Windows7(たぶん8も10も)を狭い領域でなんとか動かす方法(3
コピー用バッチファイル
便利なバッチを作ってくれた方がいました。
→ Windows 7- C–Program Files フォルダーを別ドライブに移動 (x64 対応半自動化版) (Web)
ただ、こちらのやり方だとWindowsを起動したままやっていて、この通りにやってもどうしてもうまくいきませんでした。というわけでインストーラでやってしまうというのが私の思いついたやり方です。
ほんの少しカスタマイズしたので文末に掲載しておきます。
最初のsettingのところは自分の環境に応じて編集します。
環境によって変更すると言っても、インストーラーで起動した際のドライブ文字ってコロコロ変わるので結局はdiskpartコマンドで確認・変更する必要があるかもしれません。
ドライブ文字が設定できたら、以下のバッチを
USBメモリなどにコピーしておいて、windowsインストーラで起動した後「Shift + F10」を押して開くコマンドプロンプトで実行します。
一応コピーが終わったあとpauseで止まりますので何かキーを押します。
完了したらProgramDataの参照先をレジストリで変更するのですが、それはWindowsが起動していないとできないので、あとでやります。
このまままたWindowsをインストールしては意味が無いので、
強制的に電源を切るか、あればリセットボタンを押してください。Windowsが起動してくるでしょうか・・・?
setup.bat
@echo off echo ### SETUP ### echo. rem User settings: START ========== set FromUsersDir=C:\Users set ToUsersDir=G:\Users set FromProgramData=C:\ProgramData set ToProgramData=G:\ProgramData set FromDir=C:\Program Files set FromDirX86=C:\Program Files (x86) set ToDir=G:\Program Files set ToDirX86=G:\Program Files (x86) rem User settings: END ========== robocopy %FromUsersDir% %ToUsersDir% /E /COPYALL /XJ robocopy %FromProgramData% %ToProgramData% /E /COPYALL /XJ :X86 if /i "%ProgramFiles%" equ "%FromDir%" ( if exist "%FromDir%" ( if not exist "%ToDir%" ( xcopy /e /h /k /o /x /b /y "%FromDir%" "%ToDir%\" if exist "%ToDir%\Windows NT\アクセサリ" ( takeown /f "%ToDir%\Windows NT\アクセサリ" /r /a /d y cacls "%ToDir%\Windows NT\アクセサリ" /t /e /c /g %USERNAME%:f rmdir /s /q "%ToDir%\Windows NT\アクセサリ" if not exist "%ToDir%\Windows NT\アクセサリ" mklink /j "%ToDir%\Windows NT\アクセサリ" "%ToDir%\Windows NT\Accessories" ) ) ) ) :X64 if /i "%ProgramFiles(x86)%" equ "%FromDirX86%" ( if exist "%FromDirX86%" ( if not exist "%ToDirX86%" ( xcopy /e /h /k /o /x /b /y "%FromDirX86%" "%ToDirX86%\" ) ) ) echo. echo Copying directories was completed. echo try rmdir. pause rmdir /s /q "%FromDir%" rmdir /s /q "%FromDirX86%" rmdir /s /q "%FromUsersDir%" rmdir /s /q "%FromProgramData%" echo try symlink mklink /d "%FromUsersDir%" "%ToUsersDir%" mklink /d "%FromProgramData%" "%ToProgramData%" mklink /d "%FromDir%" "%ToDir%" mklink /d "%FromDirX86%" "%ToDirX86%" echo ok. echo regedit try... echo ProgramData only G: change! pause
ディスカッション
コメント一覧
まだ、コメントがありません