注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
PowerShell求助&讨论
» 获取主文件夹下所有子文件夹的路径列表遇到的排序问题
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
1
楼
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2022-1-2 10:58
|
显示全部帖子
[问题求助]
获取主文件夹下所有子文件夹的路径列表遇到的排序问题
本帖最后由 5i365 于 2022-1-2 11:12 编辑
桌面上有一个A文件夹,里面有如下的子文件夹,并且是按如下的顺序显示的:
1 中
2 国
11 美
12 国
22 人
101 日
102 本
202 人
执行下面的代码
Get-ChildItem -Path "C:\Users\Administrator\Desktop\A" -Name -Directory
得到的结果如下,
1 中
101 日
102 本
11 美
12 国
2 国
202 人
22 人
问题:
1.如何让结果以最上面的文件夹顺序排列?
2.如何在结果中显示子文件夹的完整路径而不只是文件夹名,我用下面的代码,没有任何显示
Get-ChildItem -Path "C:\Users\Administrator\Desktop\A" -Directory -Name | foreach {echo $_.FullName}
收藏
分享
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
2
楼
发表于 2022-1-2 11:22
|
显示全部帖子
找到一篇文章,但是看不太懂:
https://www.itranslater.com/qa/details/2583269405165618176
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
3
楼
发表于 2022-1-2 11:26
|
显示全部帖子
本帖最后由 5i365 于 2022-1-2 11:56 编辑
瞎猫碰死耗子, 自己搞定了, 期待路过的高手, 能解释一下中间那部分的代码, 也期待能有更简单的代码
Get-ChildItem "C:\Users\Administrator\Desktop\A" -Directory | Sort-Object {
[regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(20) })
} | ForEach-Object {echo $_.fullname}
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
4
楼
发表于 2022-1-2 19:11
|
显示全部帖子
本帖最后由 5i365 于 2022-1-2 19:14 编辑
回复
4#
went
大侠威武, 牛X, 但是不知道稳不稳, 能应付得了文件名中有空格和特殊符号的情况吗?
对正则一直都不敢太放手去用, 以前有一次尝试, 结果执行后, 遇到不可逆的误操作了, 所以一直把正则放在最后的方案来用
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
5
楼
发表于 2022-1-2 19:17
|
显示全部帖子
回复
4#
went
还有一个问题, 执行后没显示完整路径, 我加了代码也不灵
Get-ChildItem "C:\Users\Administrator\Desktop\A" -Directory -Name | Sort-Object { [int]($_ -split '\s+')[0] } | ForEach-Object { echo $_.fullname }
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
6
楼
发表于 2022-1-3 06:24
|
显示全部帖子
回复
7#
went
输出的结果, 多一个标题头
$_.FullName
-------------
C:\Users\Administrator\Desktop\A\1 中
C:\Users\Administrator\Desktop\A\2 国
C:\Users\Administrator\Desktop\A\11 美
C:\Users\Administrator\Desktop\A\12 国
C:\Users\Administrator\Desktop\A\22 人
C:\Users\Administrator\Desktop\A\101 日
C:\Users\Administrator\Desktop\A\102 本
C:\Users\Administrator\Desktop\A\202 人
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
7
楼
发表于 2022-1-3 06:29
|
显示全部帖子
回复
7#
went
把后面改成 ForEach-Object { $_.fullname } 就可以了, 不知道select 和foreach为什么会有不同
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
8
楼
发表于 2022-3-7 16:09
|
显示全部帖子
回复
7#
went
大侠好, 当文件夹名中,数字后面没有空格时,还能用切分的方法吗? 或还有简单点的方法吗? 例如
1中
101日
102本
11美
12国
2国
202人
22人
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
9
楼
发表于 2022-3-7 20:41
|
显示全部帖子
回复
11#
for_flr
多谢分享, 比上面我搜索到的那个代码, 短了不少, 这回应该稳了吧, 文件不多的时候, 很少用批处理, 怕不稳, 有时真不可逆
TOP
5i365
发短消息
加为好友
5i365
(我心飞扬)
当前离线
UID
92265
帖子
1013
精华
0
积分
1228
PB
1186
技术
14
捐助
0
阅读权限
50
在线时间
916 小时
注册时间
2019-2-20
最后登录
2024-7-16
上尉
帖子
1013
积分
1228
技术
14
捐助
0
注册时间
2019-2-20
10
楼
发表于 2022-3-7 20:47
|
显示全部帖子
本帖最后由 5i365 于 2022-3-7 20:49 编辑
回复
11#
for_flr
突然想请教一个个问题, 怎样获得打开的文件夹后, 里面显示的文件默认排序的列表? 也就是, 默认情况下,右键菜单中 -> 排序方式 ->是选了 名称 和 递增
例如,打开文件夹后, 显示的文件的顺序如下:
12 国.txt
第 2 国.txt
第1 中.txt
第11 美.txt
但是用了上面代码后, 排序却如下, 这个问题有解吗?
第1 中.txt
第 2 国.txt
第11 美.txt
12 国.txt
TOP
返回列表
BAT原创&转载
VBS原创&转载
BAT教程&资料
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]