0

需要 Windows .bat 文件技术支持。我在运行遍历令牌和变量的 Win 7 bat 文件时遇到问题。下面的脚本适用于我妻子的 PC,应该适用于所有 PC,但不适用于我的 PC。

** 我在我的 Mac 上的 VMWare 中运行 Windows 7。

该文件位于 c 的根目录:

这个简短的小脚本,以及任何其他喜欢它的带有标记的脚本都会给我错误(我从 .bat 文件中复制了下面的脚本):

setLocal ENABLEDELAYEDEXPANSION
set SCHEMA_one= first
set SCHEMA_two= second
set SCHEMA_three= third

@ECHO ON
FOR /F "tokens=2* delims=_=" %%A IN ('set SCHEMA_') DO (
    echo "looping through " %%A
)
endLocal

我收到以下错误:

C:\>FOR /F "tokens=2* delims=_=" %A IN ('set SCHEMA_') DO (echo "looping through " %A )  
'set SCHEMA_' is not recognized as an internal or external command, operable program or batch file.

想法???

提前谢谢了。我已经被困了几个小时......

4

2 回答 2

0

您可能需要查看for /?,特别是使用usebackq. 这可以改变你设置的解释。

此外,我也总是enableextensions在我的命令中使用,以确保完全按照我的需要setlocal设置环境。

另一件事是对批处理文件进行十六进制转储,以确保set和之间的字符SCHEMA实际上是一个空格。如果它是不同的角色,那么cmd可能会将set.SCHEMA.那个有趣的角色在哪里)视为一个命令。

于 2012-05-15T04:23:53.767 回答
0

编辑-我确实找到了答案..完整的用户错误..

在某些时候,COMSPEC 环境变量路径发生了变化,所以是错误的!!!!有错别字!!!:/太蹩脚了。

在比较新环境和旧环境之间的环境变量时,我终于注意到了错字。伙计,一个角色花了我好几个小时。我以前没有意识到(尽管现在很明显)这是用于 bat 命令的路径,否则我会对其进行更仔细的审查。不知道为什么它完全有效(???)

================ 好吧,我对修复不满意-因为它是一个大锤子。但是我安装了一个新的 Windows 7 VM,现在我可以运行脚本了。早些时候安装了 vm- 3.1.4 的更新版本(我的 3.1.2 的最新免费升级),但这并没有解决问题。在此之前我尝试了上面建议的东西(非常感谢上面发布的人!)

不知道我的 Windows 安装出了什么问题,但确实是这样。我与其他计算机进行了比较,我的环境参数看起来都不错。Java 很好,等等。只是关于我在那个 VM 上的用户帐户,或者......?没有把握。时间不多了,只好继续前行。:)

如果我弄清楚了,我会发布答案。同时,我将设置并希望在这个新 VM 上工作。

干杯!达斯汀

于 2012-05-16T04:37:20.360 回答