Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 命令列出文件夹及其子文件夹中的所有文件,使用Win cmd.exe仅显示文件名(无路径)_Powershell_Cmd_Windows 10 - Fatal编程技术网

Powershell 命令列出文件夹及其子文件夹中的所有文件,使用Win cmd.exe仅显示文件名(无路径)

Powershell 命令列出文件夹及其子文件夹中的所有文件,使用Win cmd.exe仅显示文件名(无路径),powershell,cmd,windows-10,Powershell,Cmd,Windows 10,我正在寻找一个使用cmd.exe(Win 10)的命令,该命令将按字母顺序列出文件夹及其子文件夹中的所有文件,而不考虑路径,并且只显示文件名(无路径) 我熟悉的命令(例如,包括“dir..\samplefolder/b/s/A-D/o:n>filelist.txt”)都包含输出中的路径,因此不是我想要的 多谢各位 (for /r "c:\startfolder" %%A in (*) do echo %%~nxA)|sort (这是批处理文件语法;要直接在命令行上使用,请将每个%%替换为仅%%

我正在寻找一个使用cmd.exe(Win 10)的命令,该命令将按字母顺序列出文件夹及其子文件夹中的所有文件,而不考虑路径,并且只显示文件名(无路径)

我熟悉的命令(例如,包括“dir..\samplefolder/b/s/A-D/o:n>filelist.txt”)都包含输出中的路径,因此不是我想要的

多谢各位

(for /r "c:\startfolder" %%A in (*) do echo %%~nxA)|sort
(这是批处理文件语法;要直接在命令行上使用,请将每个
%%
替换为仅
%%

for/r
在所有(非隐藏)文件上循环r

%%~nxA
仅显示name和ex张力(如果您只需要名称而不需要扩展名,请使用
%%~nA


有关这些修改器的更多信息,请参见
/

如果机器使用的是当前的PowerShell 5或更高版本,则可以使用:

(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name |
    Sort-Object |
    Out-File -PSPath 'filelist.txt' -Encoding ascii
在.bat文件脚本中

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name | Sort-Object"
如果机器没有当前的PowerShell,则应升级或使用:

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -Path '..\samplefolder'|" ^
        "Where-Object { -not $_.IsContainer}).Name |" ^
        "Sort-Object"

有人能解释h4z3上面的链接在这里做什么吗?上面的链接解释了类似的情况,如何在Windows中执行bash
cut
。在链接中,它是关于用斜线切割的,你需要用反斜线切割。我不怎么处理windows cmd,所以我搜索了我将在bash中使用的东西。我发布链接只是因为:a)这是一条评论,而不是一个答案,b)链接中的答案已经解释了东西,c)我在工作,所以没有时间解释东西。谢谢。我不知道如何使用链接信息,但我感谢你的努力。谢谢,但我没有得到我想要的结果:(1)文件列表不是严格按字母顺序排列的;它是按字母顺序排列的,但文件列表顺序反映了子文件夹路径的顺序,而不是忽略这些路径;换句话说,文件是根据路径分组的。(2) 输出显示cmd窗口中的所有文件,这是应该的,但是输出没有显示.txt文件中我已重定向(通过“>”)输出到的所有文件;更确切地说,.txt文件只包括列表中的最后一个文件。对不起,我完全忘记了对它们进行排序。请查看我的编辑。谢谢,但是修改/编辑命令的结果文本文件完全为空?你把startfolder适应你的环境了吗?嗯,它对我很有效,因为我看不出你在尝试什么,我不得不猜测。“不工作”不是很有用。也许你应该在你的问题中编辑你当前的(不工作的)命令。谢谢。我有第5版的PowerShell。今天晚些时候将尝试此方法。此(PowerShell)是最佳解决方案:(Get ChildItem-Recurse-File-Path'..\samplefolder').Name | Sort Object | Out File-PSPath filelist.txt'-编码ASciith PowerShell方法与其他(cmd.exe)方法相比有两个优点:(1)它生成了列出所有文件名的.txt文档,以及(2)它只列出那些文件名,而另一个方法也第二次列出(仅在cmd窗口中)文件,显示完整路径。感谢Stephan和lit。