can you add the support for targeting partitions via their volume serial number instead of only the drive letter?
Maybe in the form of: {1ECD-8A2C}\
E.g.
Code: Select all
goto "{1ECD-8A2C}\Backup";
Code: Select all
goto "{1ECD-8A2C}\Backup";
admin wrote:1. Not supported ATM.yusef88 wrote:why xyplorer doesn't handle location like this ?Code: Select all
\\?\Volume{64CF0AD5-AEE6-11E4-9712-806E6F6E6963}\boot.ini
Code: Select all
$serial = "1ECD-8A2C"; // 2 TB internal drive (normally on T:)
goto resolveVolumeSerialNumber($serial);
// Resolve the volume serial number of a partition into the corresponding drive letter
function resolveVolumeSerialNumber($volumeSerialNumber) {
foreach($drive, get("drives")) {
$drive = trim($drive, "\", "R");
$serial = regexmatches(runret("cmd /c vol $drive", "%windir%"), "[A-Z0-9]{4}-[A-Z0-9]{4}");
if ($serial == $volumeSerialNumber) { return $drive; }
}
return "<curpath>";
}
Code: Select all
text getVolumeSerialNumber();
text getVolumeSerialNumber("D");
text getVolumeSerialNumber("C:|D:")
// Returns the volume serial number for a single / multiple / all drive letter(s)
function getVolumeSerialNumber($driveLetters) {
$drives = get("drives");
$output = "";
if !($driveLetters) { $driveLetters = $drives; }
foreach($drive, $driveLetters) {
if (strlen($drive) == 1) { $drive = "$drive:"; }
$drive = trim($drive, "\", "R");
$serial = regexmatches(runret("cmd /c vol $drive", "%windir%"), "[A-Z0-9]{4}-[A-Z0-9]{4}");
if !($serial) { $serial = "NO SERIAL"; }
$output = $output . "$drive - $serial<crlf>";
}
return $output;
}
Code: Select all
Could not find:
D:\Progs\XYplorer\resolveVolumeSerialNumber(A2F3-1530)
Code: Select all
$serial = "A2F3-1530"; // 2 TB internal drive (normally on T:)
goto resolveVolumeSerialNumber($serial);
// Resolve the volume serial number of a partition into the corresponding drive letter
function resolveVolumeSerialNumber($volumeSerialNumber) {
foreach($drive, get("drives")) {
$drive = trim($drive, "\", "R");
$serial = regexmatches(runret("cmd /c vol $drive", "%windir%"), "[A-Z0-9]{4}-[A-Z0-9]{4}");
if ($serial == $volumeSerialNumber) { return $drive; }
}
return "<curpath>";
}
This version doesn't even exist15.00.500
Code: Select all
function resolveVolumeSerialNumber($volumeSerialNumber) {
foreach($drive, get("drives")) {
$drive = trim($drive, "\", "R");
$serial = regexmatches(runret("cmd /c vol $drive", "%windir%"), "[A-Z0-9]{4}-[A-Z0-9]{4}");
if ($serial == $volumeSerialNumber) { return $drive; }
}
return "<curpath>";
}