批处理文件在消息中报告目录中第一个文件的文件名
Batch file to report the filename of the first file in a directory, in a message
我正在设置一个基本的目录交换,我计划使用它在 Grand Theft Auto V 的原始版本和修改版本之间切换。我正在拍摄的是一个批处理文件,它将对两个目录进行名称交换, 然后通过消息框告诉我哪个安装变体在主目录中。到目前为止,我有一个至少告诉我交换成功的交换程序。
@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.txt
和 modified.txt
中添加了一个文件,但我不知道如何进一步使用它们中的任何一个名称到消息中。
如何让消息报告主目录中文本文件的名称?如果你能告诉我一个更简单的方法,加分。
所以你只需要 运行 一个 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.ren
和 modified.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
我正在设置一个基本的目录交换,我计划使用它在 Grand Theft Auto V 的原始版本和修改版本之间切换。我正在拍摄的是一个批处理文件,它将对两个目录进行名称交换, 然后通过消息框告诉我哪个安装变体在主目录中。到目前为止,我有一个至少告诉我交换成功的交换程序。
@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.txt
和 modified.txt
中添加了一个文件,但我不知道如何进一步使用它们中的任何一个名称到消息中。
如何让消息报告主目录中文本文件的名称?如果你能告诉我一个更简单的方法,加分。
所以你只需要 运行 一个 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.ren
和 modified.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