我正在尝试在powershell中使用robocopy来获取文件共享中所有文件夹的列表,其次是仅包含特定文件夹中的文件列表。
当我使用robocopy \\grape\Documents\testACASmigration2 NULL /L /S /NJH /BYTES /FP /NC /XJ /R:0 /W:0
时
它输出这个
0 \\grape\Documents\testACASmigration2\
0 \\grape\Documents\testACASmigration2\test\
0 \\grape\Documents\testACASmigration2\test\migration\
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 3 3 0 0 0 0
Files : 0 0 0 0 0 0
Bytes : 0 0 0 0 0 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
Ended : 05 August 2015 10:25:11
无论如何我可以进入2个阵列,一个用于所有文件夹,一个用于特定文件夹中的所有文件 我不想要GET_CHILDREN或者任何事情,就像它为260以上的路径所做的那样。机器人就是为什么我用机器人问题提出了这个问题
答案 0 :(得分:0)
这就是你所追求的:
$folder=[IO.Directory]::GetDirectories("C:\temp")
$files=[IO.Directory]::GetFiles("C:\temp")
这给了我以下输出:
答案 1 :(得分:0)
使用powershell get-childitem命令和-Recurse开关可以实现这一点。
Get-ChildItem -Recurse
Directory: C:\Users\Jower\OneDrive\Documents\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 05-08-2015 12:15 sub1
-a---- 05-08-2015 12:15 6 test1.txt
-a---- 05-08-2015 12:15 6 test2.txt
-a---- 05-08-2015 12:15 6 test3.txt
Directory: C:\Users\Jower\OneDrive\Documents\test\sub1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 05-08-2015 12:15 6 test4.txt
虽然您可能会使用类似的东西将它实际放在两个数组中。
$array1 = Get-ChildItem -recurse -Directory # only return the directories
foreach ($folder in $array1)
{
$array2 = get-childitem $folder -file #get the files in this folder
# Process $array2
}