Skip to content

Symbolic links on Windows #13

Description

@rdahis

Creating symlinks in Windows using -mklink- (run in Command Prompt as Administrator).

First, create a .bat file, then use the following script to symlink either a folder or a specific file (say a CSV):

Version 1

@echo off
SETLOCAL

:: Set the paths for the versioned and non-versioned directories using 8.3 names
set "NON_VERSIONED_PATH=<PATH_FOLDER>"
set "REPO_PATH=<PATH_REPO>"

:: Ensure directories exist in NON_VERSIONED_PATH and remove any existing directories in REPO_PATH
if not exist "%NON_VERSIONED_PATH%\input" mkdir "%NON_VERSIONED_PATH%\input"
if exist "%REPO_PATH%\input" rmdir /s /q "%REPO_PATH%\input"
mklink /D "%REPO_PATH%\input" "%NON_VERSIONED_PATH%\input"

if not exist "%NON_VERSIONED_PATH%\output\data" mkdir "%NON_VERSIONED_PATH%\output\data"
if exist "%REPO_PATH%\output\data" rmdir /s /q "%REPO_PATH%\output\data"
mklink /D "%REPO_PATH%\output\data" "%NON_VERSIONED_PATH%\output\data"

if not exist "%NON_VERSIONED_PATH%\output\logs" mkdir "%NON_VERSIONED_PATH%\output\logs"
if exist "%REPO_PATH%\output\logs" rmdir /s /q "%REPO_PATH%\output\logs"
mklink /D "%REPO_PATH%\output\logs" "%NON_VERSIONED_PATH%\output\logs"

if not exist "%NON_VERSIONED_PATH%\tmp" mkdir "%NON_VERSIONED_PATH%\tmp"
if exist "%REPO_PATH%\tmp" rmdir /s /q "%REPO_PATH%\tmp"
mklink /D "%REPO_PATH%\tmp" "%NON_VERSIONED_PATH%\tmp"

ENDLOCAL

Version 2

-- Folder --
@echo off 
set NON_VERSIONED_PATH=C:\path\to\source_folder 
set REPO_PATH=C:\path\to\link_folder 

mklink /D "%REPO_PATH%" "%NON_VERSIONED_PATH%" 
pause

-- File --
@echo off 
set NON_VERSIONED_PATH=C:\path\to\source_file.csv 
set REPO_PATH=C:\path\to\link_folder 

mklink "%REPO_PATH%\%FILENAME%" "%NON_VERSIONED_PATH%" 
pause

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions