批处理文件,以消息形式报告目录中第一个文件的文件名

时间:2019-03-05 08:20:36

标签: batch-file filenames swap

我正在设置一个基本的目录交换,我打算用它在香草和侠盗猎车手5的修改版本之间进行切换。我要拍摄的是一个批处理文件,该文件将对两个目录进行名称交换,然后通过消息框告诉我哪个安装变量位于主目录中。到目前为止,我有一个交换器,至少可以告诉我交换已成功。

@echo off
ren "Grand Theft Auto V" "Grand Theft Auto V_swap"
ren "Grand Theft Auto V_mod" "Grand Theft Auto V"
ren "Grand Theft Auto V_swap" "Grand Theft Auto V_mod"
msg "%username%" "Files successfully swapped!"

我在每个根目录vanilla.txtmodified.txt中都添加了一个文件,但是我不知道如何进一步使用消息中的两个名称。

如何让消息报告主目录中文本文件的名称?奖励积分,如果您能告诉我一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

因此,您只需要运行一个for循环,假设这些是每个目录根目录下唯一的txt文件:

@echo off
ren "Grand Theft Auto V" "Grand Theft Auto V_swap"
ren "Grand Theft Auto V_mod" "Grand Theft Auto V"
ren "Grand Theft Auto V_swap" "Grand Theft Auto V_mod"
for %%i in ("Grand Theft Auto V\*.txt") do msg %username% %%~ni

但是,如果目录中还有其他文本文件,我们可以测试其名称,也可以将文件重命名为某个扩展名,而不是其他位置。即vanilla.renmodified.ren然后只需执行以下操作:

要测试名称,并且仅在名称匹配时测试味精:

for %%i in ("Grand Theft Auto V\*.txt") do (
    if /i "%%~ni"=="vanilla" msg %username% %%~ni
    if /i "%%~ni"=="modified" msg %username% %%~ni
)

或虚拟扩展名:

for %%i in ("Grand Theft Auto V\*.ren") do msg %username% %%~ni