如果是Windows批处理的其他用法

时间:2014-06-18 08:07:16

标签: windows batch-file cmd

@ECHO OFF
COLOR 3E
SET A111="Documents and Settings"
SET A222=Users
SET /P PC=Enter Computer IP or HostName: 

@echo Opening Remote Folder....
if exist "" "\\%PC%\C$\"%A111%" (start "" "\\%PC%\C$\"%A111%") else (start \\%PC%\C$\%A222%)
PAUSE

嗨,我制作了一个批处理文件来打开一些远程文件夹,但是我没有注意到它有错误。

进入IP后;我想打开,如果有远程"文档和设置"夹。 但如果没有"文件和设置",我想看到"用户"文件夹中。

我犯的错误在哪里?

提前谢谢....

3 个答案:

答案 0 :(得分:1)

if exist "" "\\%PC%\C$\"%1%" (start "" "\\%PC%\"%1%") else (start \\%PC%\C$\%2%)
嗯 - 不。

SET "D1=Documents and Settings"
SET "D2=Users"
if exist "\\%PC%\C$\%D1%" (start "" "\\%PC%\"%D1%") else (start "" "\\%PC%\C$\%D2%")

(未测试的)

您不能(轻松)访问以数字开头的用户变量,因为批处理假定%n(其中n为0..9)是命令行参数。

如果存在“”表示“如果存在名为”“的文件” - 呃,什么?

原始\\%PC%...有不平衡的报价。

START有一个怪癖,其中提供它的第一个引用字符串是窗口标题,因此您需要显式引用start的参数。空是好的。另一个字符串可能很有用 - 您的选择。

答案 1 :(得分:0)

试试这个:

@ECHO OFF
COLOR 3E
SET d=Documents and Settings
SET u=Users
SET /P PC=Enter Computer IP or HostName: 

@echo Opening Remote Folder....
if exist "\\%PC%\C$\%d%" (start "" "\\%PC%\%d%") else (start "" "\\%PC%\C$\%u%")
PAUSE

你的问题是:

if exist "" "\\%PC%\C$\"%1%" (start "" "\\%PC%\"%1%") else (start \\%PC%\C$\%2%)
REM      ^- Why is this "" there?

如果与%1%%2%参数混淆,我也替换了%1%2。在变量名中至少使用一个字母。

莫纳。

答案 2 :(得分:0)

@ECHO OFF
    setlocal enableextensions 

    COLOR 3E

    SET "A111=Documents and Settings"
    SET "A222=Users"

    SET "PC="
    SET /P "PC=Enter Computer IP or HostName: "

    if defined PC (
        echo Opening Remote Folder....
        if exist "\\%PC%\C$\%A111%\" (
            start "" "\\%PC%\C$\%A111%"
        ) else (
            start "" "\\%PC%\C$\%A222%"
        )
    )

    PAUSE

嗯,这个代码和Magoo或Monacraft答案之间没有区别,只是加入了所有部分。引用更正,删除的附加引号,更正的变量名称,...