@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后;我想打开,如果有远程"文档和设置"夹。 但如果没有"文件和设置",我想看到"用户"文件夹中。
我犯的错误在哪里?
提前谢谢....
答案 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答案之间没有区别,只是加入了所有部分。引用更正,删除的附加引号,更正的变量名称,...