使用批处理获取/设置未知文件名变量

使用批处理获取/设置未知文件名变量

我正在开发一个文档导入实用程序,用于从特定位置导入文本文档。文档的文件名未知,我需要找出如何确定文件的名称并将其设为脚本中的临时值,以便它知道文件名是什么,以便最终可以在记事本中自动打开它。我尝试使用它*.txt来查看记事本是否只会打开工作目录中与此过滤器匹配的第一个文件,但它不起作用。将文档复制到工作目录后,如何获取并设置这个未知的文件名变量?这是我目前为该函数编写的代码:

@ECHO OFF

:CHECK
IF EXIST "*.txt" GOTO :AUTOEDIT
IF NOT EXIST "*.txt" GOTO :RUN

:AUTOEDIT
%SYSTEMROOT%\Notepad.exe "*.txt"
GOTO :END

:RUN
%SYSTEMROOT%\Notepad.exe
GOTO :END

END

答案1

创建此批处理文件并将其保存在神秘的 txt 文件被复制到的文件夹中。

@echo off

:CHECK
for %%a in (*.txt) do (
set TxtFile=%%a
Goto :AUTOEDIT %TxtFile%
)

echo Checking for txt files every 10 seconds...
timeout /t 10 > Nul
cls
Goto :CHECK

:AUTOEDIT 
cls
echo.
echo Hello, I found a file called "%TxtFile%", Press any key to open it...
pause > Nul
%systemroot%\notepad.exe %Txtfile%

在此处输入图片描述

相关内容