Пакетный файл, чтобы сообщить имя файла первого файла в каталоге, в сообщении - PullRequest
0 голосов
/ 05 марта 2019

Я устанавливаю элементарный обмен каталогами, который я планирую использовать для переключения между vanilla и модифицированными версиями 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, но я не знаю, как это сделать.иди дальше, чтобы использовать любое из их имен в сообщении.

Как мне сделать так, чтобы сообщение сообщало об имени текстового файла в первичном каталоге?Бонусные баллы, если вы можете сказать мне более простой метод.

1 Ответ

0 голосов
/ 05 марта 2019

Так что вам просто нужно запустить цикл for, предполагая, что это единственные текстовые файлы на корень каталога:

@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
...