在cmd中显示包含子文件夹、文件和大小的文件夹属性
我希望在cmd提示符上得到与右键单击文件夹并单击属性相同的结果。。当我尝试使用dir命令时,我会得到比预期更多的目录。稍微搜索一下会有很大帮助 通过将下面的脚本放入文件(如在cmd中显示包含子文件夹、文件和大小的文件夹属性,cmd,directory,Cmd,Directory,我希望在cmd提示符上得到与右键单击文件夹并单击属性相同的结果。。当我尝试使用dir命令时,我会得到比预期更多的目录。稍微搜索一下会有很大帮助 通过将下面的脚本放入文件(如Get DirResults.ps1)并使用以下命令,从cmd.exe运行此命令 powershell -NoLogo -NoProfile -File DirResults.ps1 ==Get-DirResults.ps1 [CmdletBinding()] param( [Parameter(Mandatory=
Get DirResults.ps1
)并使用以下命令,从cmd.exe运行此命令
powershell -NoLogo -NoProfile -File DirResults.ps1
==Get-DirResults.ps1
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[ValidateScript({
if( -Not ($_ | Test-Path -PathType Container) ){
throw "File or folder does not exist"
}
return $true
})]
[System.Io.FileInfo]$Path
)
# Format-ByteSize from https://stackoverflow.com/a/57535324/447901
$Shlwapi = Add-Type -MemberDefinition '
[DllImport("Shlwapi.dll", CharSet=CharSet.Auto)]public static extern int StrFormatByteSize(long fileSize, System.Text.StringBuilder pwszBuff, int cchBuff);
' -Name "ShlwapiFunctions" -namespace ShlwapiFunctions -PassThru
Function Format-ByteSize([Long]$Size) {
$Bytes = New-Object Text.StringBuilder 20
$Return = $Shlwapi::StrFormatByteSize($Size, $Bytes, $Bytes.Capacity)
If ($Return) {$Bytes.ToString()}
}
$DirInfo = Get-ChildItem -Recurse -Directory -Path $Path | Measure-Object
$FileInfo = Get-ChildItem -Recurse -File -Path $Path | Measure-Object -Sum -Property Length
"Directory: {0}" -f @(Resolve-Path -Path $Path)
"Size: {0} ({1:N0} bytes)" -f @((Format-ByteSize $FileInfo.Sum), $FileInfo.Sum)
"Contains: {0:N0} Files, {1:N0} Folders" -f @($FileInfo.Count, $DirInfo.Count)
打开a,运行目录C:\CST2107Lab4/a,查看最后两行,其中包含目录中的文件数及其总大小(以字节为单位)以及子目录数的信息。使用
for/F
循环处理dir
的输出,可以将这三个数据分配给环境变量。英语窗口示例:for/F“skip=7 tokens=1-3”%%I in('dir“C:\CST2107Lab4”/A 2^>nul')如果“%%J”==“文件”(设置“NumberFiles=%%I”并设置“TotalFileSize=%%K”)则如果“%%J”=“dir(s)”设置/A NumberFolders=%I-2
感谢您的回答有没有办法使用cmd提示符而不是power shell是的,这就是我写的。在cmd.exe中,使用命令powershell-NoLogo-NoProfile-File Get DirResults.ps1
。如果没有除cmd.exe以外的任何可执行文件,则很难执行此操作,而且可能无法维护。它能产生你想要的结果吗?