Мені потрібен звичайний ярлик або .bat, розташований у C: \ abc \ 00001 \ Він повинен посилатися на C: \ xyz \ 00001 \, де 00001 трактується як відносний вираз, в даному випадку "поточна назва каталогів".
Метою є швидкий доступ до "сестри папки", незалежно від того, чи буде ім'я папки 00001 або 12734, або 96185 тощо. Справжні шляхи будуть далеко один від одного у дереві папок.
В ідеалі це був би не bat файл, а звичайна ярлика Windows, але я не міг змусити роботу CurrDirName%.
Я спробував шукати і придумав якийсь код, який, можливо, міг би бути скоригований відповідно до мети, але у мене мало досвіду роботи з цим типом синтаксису ..
Отримайте поточну назву каталогів (де знаходиться файл bat; C: \ abc \ 00001 \ повинен дати 00001)
for %%* in (.) do set CurrDirName=%%~nx*
Відкрийте відповідний віддалений каталог (C: \ xyz \ 00001)
%SystemRoot%\explorer.exe "c:\xyz\%CurrDirName%"
Хтось бере? :)
EDIT: Завдяки @davidmneedham я в кінцевому підсумку використовував VBscript. Ось мій остаточний код:
Set objShell = CreateObject("Wscript.Shell")
strPath = Wscript.ScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFSOexists = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
strFolder = objFSO.GetParentFolderName(objFile)
strExchangeThis = "Y:\Organization\...\" 'shortened path!
strToThis = "Y:\Labspace\...\" 'shortened path!
strRelFolder = Replace(strFolder, strExchangeThis, strToThis)
' if strRelFolder does not exist yet, we should instead be lead to the basic strToThis folder
exists = objFSOexists.FolderExists(strRelFolder)
if Not (exists) then
strRelFolder = strToThis
end if
strPath = "explorer.exe /e," & strRelFolder
objShell.Run strPath
' Encoding changed from UTF-8 to ANSI to allow danish characters in strings.
SET newpath=%cd:\ERWI\=\ERWI2\% start %newpath%
, але у мене виникають проблеми, коли я намагаюся налаштуватись на більш просунутий шлях, оскільки я щойно додав як коментар до свого початкового питання. Для початку моя спроба на прості подвійні цитати змінює цеSET newpath=%cd:"\ERWI\"="\ERWI2\%"
, а такожSET newpath=%cd:"\ERWI\"="\ERWI2\"%