【问题标题】:Isolate Server Name From UNC with FOR in Batch使用 FOR 批量从 UNC 中隔离服务器名称
【发布时间】: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


【解决方案1】:

感谢@Endoro。

使用("%PATH%") 成功了。我忘了用引号将变量括起来。

【讨论】:

    猜你喜欢
    • 2010-11-06
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多