Wie kann ich das Volumen eines angegebenen Ordners direkt mithilfe von JSL ermitteln?Beispielsweise dieser Ordner:
C:\Windows
Danke!
InhaltsorganisationWindowsBetreff: Wie kann ich das Volumen eines bestimmten Ordners direkt mit JSL abrufen?Ich glaube nicht, dass es direkt abgeleitet werden kann.Hier ist, was ich mir ausgedacht habe
Names Default To Here( 1 );
theList = Files In Directory( "C:\Windows" );
totSize = 0;
For Each( {theFile}, theList,
totSize = Sum( totSize, File Size( "C:\Windows\" || theFile ) )
);
Show( totSize );
Aber es scheint nicht korrekt zu sein
Betreff: Wie kann ich das Volumen eines bestimmten Ordners direkt mit JSL abrufen?Danke, Jim!
Betreff: Wie kann ich das Volumen eines bestimmten Ordners direkt mit JSL abrufen?Betreff: Wie kann ich das Volumen eines bestimmten Ordners direkt mit JSL abrufen?Möglicherweise ist es besser, diese Art der Prüfung mit „Programm ausführen“ und einem damit verbundenen Befehl durchzuführen.
Bei Dateien im Verzeichnis müssen Sie recursive(1) hinzufügen (oder selbst eine Schleife ausführen, um Dateien in Ordnern abzurufen).
Names Default To Here(1);
lookup_dir = "C:\Windows\";
file_list = Files In Directory(lookup_dir, recursive(1));
file_sizes = Transform Each({cur_file}, file_list,
File Size(lookup_dir || cur_file)
);
sum(file_sizes);
https://www.jmp.com/support/help/en/17.0/#page/jmp/file-functions.shtml?os=win&source=application#ww4951479
Sie können hierfür auch den Mehrfachdateiimport verwenden Verzeichnisbaum: Erkunden Sie den von Ordnern verwendeten Speicherplatz
Betreff: Wie kann ich das Volumen eines bestimmten Ordners direkt mit JSL abrufen?Als @jthi vorgeschlagen, hier ist eine Möglichkeit, dies mit Run Program / Powershell (natürlich von JMP) zu tun.
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/
Names Default To Here( 1 );
op = {};
rp = Run Program(
Executable( "powershell.exe" ),
Options( "ls c:\temp\ -r | measure -sum Length" ), //Replace c:\temp\ with your folder
ReadFunction( Function( {this}, Insert Into( op, this << read ) ) )
);
for each ({i}, op,
if (word(1, i) == "Sum", totalsize = num(regex (i, "([0-9]+)")))
);
show (totalsize);Betreff: Wie kann ich das Volumen eines angegebenen Ordners direkt mithilfe von JSL ermitteln?GPT-4o ist mittlerweile sehr leistungsstark und kann normale Programmierungen durchführen:
Im Win10-System gelten für die Volumegröße jedes Verzeichnisses auf der C-Festplatte (einschließlich versteckter Dateien) folgende spezifische Anforderungen:
Beginnen Sie in den Stammverzeichnissen des Laufwerks C:
1. Wenn das Unterverzeichnis dieses Verzeichnisses mehr als 3 Ebenen umfasst, kann es auf das Verzeichnis der dritten Ebene erweitert werden. Die Statistiken zum jeweiligen Volumen jedes Verzeichnisses, das im Verzeichnis der dritten Ebene enthalten ist,
2. Wenn das Unterverzeichnis dieses Verzeichnisses nicht mehr als 3 Ebenen umfasst, werden die Statistiken der Erweiterung dieses Verzeichnisses bis zur letzten Ebene des Verzeichnisses des jeweiligen Datenträgers angezeigt.
t1=tick seconds();run program(executable("cmd.exe"),options({"/c powershell -Command \!"& {$results = @(); Get-ChildItem C:\ -Directory -Force | ForEach-Object { $topDir = $_; $subDirs = Get-ChildItem $topDir.FullName -Recurse -Directory -Force -ErrorAction SilentlyContinue | Where-Object { ($_.FullName.Split('\').Length - 1) -le 3 }; if ($subDirs) { $subDirs | ForEach-Object { $size = (Get-ChildItem $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum; $results += [PSCustomObject]@{ Path = $_.FullName; 'Size (MB)' = [math]::Round($size / 1MB, 2) } } } else { $size = (Get-ChildItem $topDir.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum; $results += [PSCustomObject]@{ Path = $topDir.FullName; ')' = [math]::Round($size / 1MB, 2) } } }; $results | Export-Csv -Path 'D:\目录大小.csv' -NoTypeInformation -Encoding UTF8}\!""}));
t2=tick seconds();t=t2-t1;Betreff: Wie kann ich das Volumen eines angegebenen Ordners direkt mithilfe von JSL ermitteln?