gpt4 book ai didi

windows - FOR/F 循环中的虚假 'system\cmd.exe'

转载 作者:可可西里 更新时间:2023-11-01 11:40:32 28 4
gpt4 key购买 nike

这是似乎变得更加复杂的要求之一,每次我发现 Windows/cmd shell hack 需要“解决”。本质上...我需要在 DOS Shell FOR 循环中遍历特定的文件夹列表。这是我想出的循环:

 echo  ^ [start for test]
for /F "usebackq " %%f IN (`dir /b /adh "w:\sandbox\tmp\"`) DO (
echo ^ do with file: %%f
rem <do something>
)
echo ^ [for test done]

主要需要遍历源文件夹中的隐藏目录(此处为sandbox\tmp)。

结果既令人惊讶又令人沮丧。这是在控制台命令行上使用此 FOR 指令的结果。

W:..> for  /F "usebackq "  %f 
IN (`dir /b /adh "w:\sandbox\tmp\"`) DO echo ^ folder = %f
File Not Found <1>
folder = C:\WINDOWS\system32\cmd.exe <2>
folder = any <4>
folder = hidden-folder-01 <3>
folder = hidden-folder-02 <3>
folder = morph <4>
folder = practice-northwind <4>

其中列出了五个文件夹。伟大的!还有一个 cmd.exe 标签:<2> 和一个神秘标签:<1>。我应该解释一下我认为的 DIR 开关。

  • /b ....... 纯格式,只有文件/文件夹名称。
  • /adh ..... 隐藏目录和目录都已详尽尝试——没用。
    /a高清
  • /ad ......具有目录属性的项目(文件夹)。
  • /ah ...... 隐藏文件/文件夹(貌似)。

我已经标记了输出,这是我到目前为止所做的。

  1. “找不到文件”.. .. .. .. .. .. 我不知道。我发现“找不到文件”。 <1> 是 /ah 开关的产物。当我说:
    IN (dir/b/adh "w:\sandbox\tmp\")
  2. C:\WINDOWS\system32**cmd.exe** .. .. 伪迭代器 (%%f);此错误仅显示在 FOR/F 命令版本中。我想找到隐藏目录,但文件集列表不返回隐藏文件(d'oh)。所以,到目前为止,我一直使用 FOR/Fusebackq 版本。
  3. 隐藏文件夹... .. .. .. .. .. 这些文件夹是预期的输出_。
  4. 目录文件夹。 .. .. .. .. .. .. 这些文件是虚假结果,不需要。

CMD 行版本(或示例 DOS 脚本)的预期结果只是 <3> 项。

W:..> for  /F "usebackq "  %f 
IN (`dir /b /adh "w:\sandbox\tmp\"`) DO echo ^ folder = %f
folder = hidden-folder-01 <3>
folder = hidden-folder-02 <3>

不幸的是,我也“可以”获取目标文件夹中的任何文件。我认为这又与 HIDDEN 开关 (/ah) 有关。

如何只列出设置目录中的隐藏文件夹(而不是文件);并像 FOR 命令一样遍历列表?

提前致谢/将

最佳答案

在你的批处理文件中 dir/b/a dh "w:\sandbox\tmp\" 应该是 dir/b/adh "w:\sandbox\tmp\",/a 和 dh 之间没有空格。带有空格的 dir 命令将 dh 解释为目录或文件参数,这是导致文件未找到错误的原因。

当您从命令行运行时,您使用的是与 dir 命令不同的参数 dir/b/ah/ad "w:\sandbox\tmp\" 因此您会得到不同的输出.将/ah 和/ad 作为单独的参数时,dir 似乎解释为它应该显示目录或隐藏文件的内容,而/adh 将显示既是目录又是隐藏的内容。

此外,您不需要在所有行上都使用@。只是在文件顶部关闭@echo,这将禁用整个批处理文件的命令回显。

关于windows - FOR/F 循环中的虚假 'system\cmd.exe',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2077418/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com