为了账号安全,请及时绑定邮箱和手机立即绑定

“X不被识别为内部或外部命令、可操作的程序或批处理文件”的原因是什么?

“X不被识别为内部或外部命令、可操作的程序或批处理文件”的原因是什么?

白衣非少年 2019-06-09 15:34:22
“X不被识别为内部或外部命令、可操作的程序或批处理文件”的原因是什么?我有一个一行代码片段,它在命令行中工作得很好,但是当我作为批处理脚本的一部分运行它时,它会失败并抛出错误。下面的命令按预期的方式运行,删除文件夹中的所有空子文件夹。for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"但是,当放入这样的批处理文件时.FOR /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') do rd "%%d".抛出标准错误:排序不被视为内部或外部命令。我已经做了大约一个小时的实验,没有逃离管道,改变了选项的顺序,查找了这两个选项的文档dir和sort等等,但我还是不知道这是怎么回事。批处理文件的其余部分(只有几行)工作正常,这是其中唯一失败的行。有人能帮忙吗?
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

很可能,你搞砸了PATH变量。也许您正在您的脚本中的其他地方覆盖它。自sort是一个外部命令,与命令行中的所有其他命令相反,如fordirrd,它们是cmd-内部命令,PATH变量以找到命令。如果PATH未定义,则仅在当前工作目录中搜索外部命令。还有一个PATHEXT为可执行文件定义标准文件扩展名所需的变量,如.com.exe..所以当sort在命令提示符或批处理文件中,系统将搜索当前工作目录和PATH变量,用于具有基名的文件。sort指定的扩展之一。PATHEXT..命令sort实际上被称为sort.exe通常位于C:\Windows\System32.


查看完整回答
反对 回复 2019-06-09
  • 2 回答
  • 0 关注
  • 1087 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信