Пакетні файли, які перейменують певний файл у підтеку з назвою батька + розширення


-1

Я досить нуб в Dos, і я намагаюся зробити сценарій (так)

Я намагаюся це зробити:

  • Візьміть назву папки, в якій знаходиться пакет (наприклад:. \ T
  • Перейменуйте файл у підтеку з назвою першого
    (приклад: \Project_Apple\OUTPUT\template.txt & gt; \Project_Apple\OUTPUT\Project_Apple.txt )

Для перейменування та націлювання, я не маю проблеми. Я використовую CD та REN. Я прочитав, що команда FOR може зробити це і прочитати документацію про неї, але я не знаходжу, як зробити це "пам'ятати" ім'я папки.

Чи є спосіб зробити це?

EDIT:

Я зробив величезний крок. Домагаюся перейменувати файл en папку з назвою папки:

for %%i in (%cd%) do set CurrDirName=%%~nxi
rename test.txt %CurrDirName%

Тепер я намагаюся націлити файл у підпапці.


1
SuperUser не є службою написання сценаріїв. Покажіть нам свої дослідження та те, що ви пробували, тоді ми раді допомогти. Але ми не просто напишемо для вас сценарій
SimonS

Відповіді:


0

Я досягла, щоб зробити те, що я хочу з цим.

for %%i in (%cd%) do set CurrDirName=%%~nxi
cd %CurrDir%\OUTPUT\
rename template.txt %CurrDirName%.txt

0

Не використовуйте %CD% це не обов'язково папка, в якій знаходиться пакет.

  • Якщо викликати пакет з абсолютним або відносним шляхом, це не змінює поточну папку.
  • Посилання на поточний пакетний файл з повним використанням шляху %~f0
  • витягніть папку з цього списку за допомогою a для і ~ модифікатори

:: Q:\Test\2019\01\24\SU_1397868.cmd
@Echo off
Echo This batch file full path: %~f0
Echo This batch file drive    : %~d0
Echo This batch file path     : %~p0
Echo This batch file name     : %~n0

for %%A in (%0\..) Do Set folder=%%~nxA

Echo This batch file folder   : %folder%

If exist "%~dp0Output\template.txt" (
    Ren  "%~dp0Output\template.txt" "%folder%.txt"
)

Зразок виводу на моєму ramdrive A:

> SU_1397868.cmd
This batch file full path: A:\Project_Apple\SU_1397868.cmd
This batch file drive    : A:
This batch file path     : \Project_Apple\
This batch file name     : SU_1397868
This batch file folder   : Project_Apple

> tree /F A:\
A:\
└───Project_Apple
    │   SU_1397868.cmd
    │
    └───OUTPUT
            Project_Apple.txt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.