【问题标题】:How to list down hidden files using a .BAT File?如何使用 .BAT 文件列出隐藏文件?
【发布时间】:2017-03-09 05:38:27
【问题描述】:

对于我的计算机项目,我的老师要求我们制作一个列出隐藏文件的 bat 文件。不过全班都不知道怎么回事。到目前为止,这是我的代码:

@echo off
set /p UserInput=What directory would you like?
cd %UserInput%
dir /S /aH
Pause

我的老师说我差不多完成了,我只是少了 2 或 3 个字符 在“dir /S /aH”之后。有谁知道这些缺失的字符是什么?

大家好,很抱歉回复晚了。在学期结束之前,我们有很多项目。 :( 当我运行 bat 文件时,它显示以下内容.. 这是链接:imgur.com/W4Wm4vP

【问题讨论】:

  • 这样的? dir /S /aH > list.txt
  • 打开命令提示符窗口并运行dir /? 以显示此命令的帮助,并阅读有关Using Command Redirection Operators 的Microsoft 文章。您可以在命令提示符窗口中以 /? 作为参数运行任何 Windows 命令以获得帮助。还有列出命令的命令 HELP
  • 如果他只想要文件(没有目录)你可能需要dir /S /aH-D
  • 不过还有一件小事:不要忘记用双引号将路径括起来,因为它们可能包含空格:cd %userinput%
  • 大家好,很抱歉回复晚了。在学期结束之前,我们有很多项目。 :(当我运行bat文件时,它显示如下:你想要什么目录?d系统找不到指定的路径。驱动器C中的卷没有标签。卷序列号为8061-99F6目录C:\ Users \admin\Desktop 然后它列出了我桌面的文件。你知道问题是什么吗?

标签: windows batch-file cmd


【解决方案1】:

虽然您已经收到了足以满足您最初请求的回​​复,但我添加了一个只是为了表明您确实应该在继续您的列表之前尝试对用户输入进行某种形式的验证:

@ECHO OFF
:LOOP
CLS
SET /P "UserInput=What directory would you like? "
IF "%UserInput%"=="" GOTO LOOP
IF /I NOT "%CD%"=="%UserInput%" (PUSHD "%UserInput%" 2>NUL||GOTO LOOP)
DIR /B /S /AH-D
TIMEOUT /T -1 /NOBREAK

我相信这会给你更多的研究和学习的东西。

编辑
事后考虑,如果最终用户只输入目录名称而不是完整路径,那么您可能需要将第 6 行替换为:

FOR %%A IN ("%CD%") DO IF /I NOT "%%~nxA"=="%UserInput%" (
    PUSHD "%UserInput%" 2>NUL||GOTO LOOP)

【讨论】:

  • 嗨@Compo,很抱歉回复晚了。在学期结束之前,我们有很多项目。 :( 当我运行 bat 文件时,它显示以下内容。这是链接:imgur.com/W4Wm4vP
  • 您没有提供完整路径,所以我假设您已经替换了编辑中的第 6 行,并且您输入了相对于当前目录的真实目录名称。如果d是驱动器号而不是目录,那么你需要补全,驱动器不是单个字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
相关资源
最近更新 更多