Skip to content

Symbolic links on Windows #13

@rdahis

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

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions