【问题标题】:FORFILES path returning invalid directory name on valid directoryFORFILES 路径在有效目录上返回无效目录名
【发布时间】:2014-07-05 23:28:37
【问题描述】:

我正在尝试使用以下命令在 Windows 8 命令窗口中使用 FORFILES 迭代文件:

CD "%RODIR%"
FORFILES /P "./DarkestHour" /C "cmd /c echo @fname"

RODIR 是一个用户变量,定义如下:

SET RODIR
RODIR=C:\Program Files (x86)\Steam\SteamApps\common\RedOrchestra

RedOrchestra 文件夹包含一个名为 DarkestHour 的文件夹,但是,我从 FORFILES 收到此错误消息:

错误:目录名无效。

即使尝试这样做(没有相对路径),也会产生相同的错误:

FORFILES /P "%RODIR%/DarkestHour" /C "cmd /c echo @fname"

我在这里做错了什么? FORFILES'/P 命令是否有某种限制?

提前感谢您的帮助!

【问题讨论】:

  • 我相信这是因为%RODIR% 内部有空格。试试set "RODIR=C:\Program Files (x86)\Steam\SteamApps\common\RedOrchestra"
  • 问题不在于RODIR 的定义,因为我可以通过cd "%RODIR%" cd 进入它。

标签: windows batch-file


【解决方案1】:

/ 是一个开关指标。 \ 是一个目录分隔符

这是一个适合我系统的演示:

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
PUSHD "%sourcedir%"
forfiles /p "./one" /c "cmd /c echo @fname"
ECHO ===================
forfiles /p ".\one" /c "cmd /c echo @fname"

POPD
GOTO :EOF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 2017-04-18
    • 2010-09-08
    相关资源
    最近更新 更多