【发布时间】:2014-03-26 17:28:14
【问题描述】:
我的整个脚本的目标是 - 从中央服务器 - 检查各个站点服务器的文件。如果文件存在,去做一些工作。这个较小的摘录有助于为站点名称、日志、日期和时间创建多个条目,我想检查 UNC 路径并使用变量作为站点服务器名称 - UNC 路径的第一个“令牌”。我使用来自Rob van der Woude's 脚本页面的示例指南(这些循环对我来说是新的,它似乎是一个基本资源)来创建下面示例的FOR 循环。
@echo off
SET PATH=\\UNCMainPath\SubPath1\SubPath2
FOR /F "tokens=1 delims=\" %%A IN (%PATH%) DO SET FOLDER=%%A
ECHO %FOLDER%
这简短而干净,并且很容易为大约 50 个站点服务器重复。但是,此代码不起作用。我收到的错误是:
系统找不到文件\\UNCMainPath\SubPath1\SubPath2。
ECHO 已关闭。
当然,这在FOR 循环开始之前告诉我出了点问题,但是对于我的一生,我无法弄清楚什么是错误的。即使使用垃圾示例文本,我也能够 SET 一个变量并将其 ECHO 恢复为它所设置的任何内容。我做错了什么?
【问题讨论】:
-
将脸插入手掌并叹息...引号做到了!我真的觉得很傻。谢谢。
-
另外,不要将
%path%用于变量,尤其是在没有 setlocal 的情况下。这是一个保留的环境变量。 -
谢谢@MattWilliamson。我不知道。我将切换到更通用的东西。
-
不客气。打开
CMD提示并输入SET以查看其余内容。
标签: batch-file for-loop unc