Batch file 批处理文件-将文本文件的内容复制到剪贴板

Batch file 批处理文件-将文本文件的内容复制到剪贴板,batch-file,if-statement,clipboard,Batch File,If Statement,Clipboard,我正在尝试编写一个基本的批处理文件,以帮助完成一些工作任务。当前迭代如下所示: '@echo off echo 1: Follow-Up Email echo 2: Things echo 3: Stuff set /p "option=Select Option:" IF %option%==1( type "C:\files\test.txt" | clip ) ELSE IF %option%==2( type "C:\files\test2.txt"

我正在尝试编写一个基本的批处理文件,以帮助完成一些工作任务。当前迭代如下所示:

'@echo off
echo 1: Follow-Up Email
echo 2: Things
echo 3: Stuff

set /p "option=Select Option:"

IF %option%==1(
    type "C:\files\test.txt" | clip
    )
ELSE IF %option%==2(    
    type "C:\files\test2.txt" | clip
    )
ELSE IF %option%==3(
    type "C:\files\test3.txt" | clip
    )
ELSE (
    echo Not a valid option.
    )   '
情境:text.txt包含字符串“text223”。text2.txt包含字符串“test2”。等等。我的问题是脚本什么都不做。没有文本被放入剪贴板。我遗漏了什么简单的东西


非常感谢

您的else if语法有问题。这个怎么样

@echo off

:Start
cls
echo 1: Follow-Up Email
echo 2: Things
echo 3: Stuff

set /p "option=Select Option:"

IF "%option%"=="1" type "C:\files\test.txt" | clip & goto :Done
IF "%option%"=="2" type "C:\files\test2.txt" | clip & goto :Done
IF "%option%"=="3" type "C:\files\test3.txt" | clip & goto :Done
echo.Not a valid option.
pause
goto :Start

:Done

您的代码格式为fubar。
在if测试中,测试前的空格缺失,
而ELSE的位置必须与)和(

它并不像它可能的那么健壮,但它是有效的

@echo off
echo 1: Follow-Up Email
echo 2: Things
echo 3: Stuff

set /p "option=Select Option:"

IF %option%==1 (
    type "C:\files\test.txt" | clip
    ) ELSE IF %option%==2 (    
    type "C:\files\test2.txt" | clip
    ) ELSE IF %option%==3 (
    type "C:\files\test3.txt" | clip
    ) ELSE (
    echo Not a valid option.
    )

键入“C:\files\test.txt”| clip
替换为
clip
这很好用。现在学习时间:由于在编程方面非常不熟练,我试图确切地理解为什么我所做的不起作用。所以你添加了:开始。为什么这是必要的?它到底起什么作用?我现在也看到了很多东西周围的引号。为什么需要引号?解释器在做什么最后,你把第四到最后一行改成了回音。不是一个有效的选项。为什么要这么做?非常感谢你的回答。@ Malaugrym你会考虑浪费五分钟来打开谷歌来挑选成千上万批基本教程中的任何一个……并阅读它。1。我添加了标签:开始,这样你就可以跳到它,如果用户输入了一个。无效的选择。这是可选的,您可以决定省略它,然后删除goto:Start。如果这样做,您也不需要cls来清除屏幕。注释太长..拆分)2.在您的情况下不需要引号;但这样做是很好的做法。这样,您就不会在比较中意外地包含空格,而且如果没有定义变量“option”,比较也会起作用。。。这在你的情况下是不可能发生的。我用echo。为了安全。我从不使用echo后跟空格。在您的情况下,它可以正常工作,但迟早您会执行类似于ECHO%option%的操作,直到option变成一个空格为止。然后它将显示ECHO已打开。或者ECHO关闭了。(回显标志的状态)。话虽如此。。。我认为这个网站上的一位专家有一篇很好的帖子,描述了为什么使用ECHO更好),因为ECHO。如果您有一个名为“”的文件,则会导致意外行为,而且速度可能更快。