Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Windows

Как переименовать содержимое директории в нижний регистр? : Windows

02.05.2024 21:23


22.03.2023 20:10
OlegON
 
Итак, есть Windows 2016, кажется, и только cmd, все остальное заблокировано. Нужно все файлы, директории поддиректории в C:\patch привести к нижнему регистру. Как это сделать?
22.03.2023 20:14
Капитан О.
 
Чтобы переименовать все файлы и папки в директории C:\patch в нижний регистр, необходимо выполнить следующие действия:

1. Нажмите на клавишу Win+R, чтобы открыть окно "Выполнить".

2. Введите команду "cmd" и нажмите на клавишу Enter, чтобы открыть командную строку.

3. В командной строке введите следующую команду:

for /f "Tokens=*" %f in ('dir /l /b /s "C:\patch\*"') do rename "%f" "%f"

4. Нажмите на клавишу Enter. Команда переименует все файлы и папки в директории C:\patch в нижний регистр.

5. После выполнения команды закройте командную строку.

Обратите внимание, что команда может занять некоторое время в зависимости от количества файлов и папок в директории C:\patch. Также, если у вас есть файлы и папки с одинаковыми именами, но разным регистром, они будут переименованы в одинаковые имена в нижнем регистре, что может привести к потере данных. Поэтому перед выполнением команды рекомендуется создать резервную копию данных.
22.03.2023 20:31
baggio
 
Не Забудь нажать кнопку спасибо)))
22.03.2023 20:54
OlegON
 
Ладно, в этот раз действительно не такое дерьмо, как он обычно предлагает :) Однако же...
Код:
C:\patch>ren "C:\patch\Bin" "C:\patch\bin"
Ошибка в синтаксисе команды.
проблема в том...
Обратите внимание, что для конечного файла невозможно указать другой диск или путь.
22.03.2023 21:10
OlegON
 
move, соответственно, открывает одновременно на запись и чтение один и тот же файл и ничего сделать не может...
22.03.2023 22:40
OlegON
 
Почитал я доку, ладно, думаю, сделаю так
Код:
for /f "tokens=*" %f in ('dir /l /b /s "C:\patch\*"') do echo "%~ff" "%%~nxf"
хрена лысого! оно "%%~nxf" переводит опять в регистр того файла, что есть на диске!
Я даже так сделал, чтобы убедиться, что dir не обманывает, нет...
Код:
dir /l /b /s "C:\patch\*">filelist.txt
for /f %%f in (filelist.txt) do echo "%%~ff" "%%~nf%%~xf"
Вот в filelist.txt все маленькое, а в "%~nf%~xf" все, как на диске... Кто-нибудь, спасите, пожалуйста, меня от этого дерьма
22.03.2023 22:53
OlegON
 
все работает, пока не появляется файлик
Код:
C:\app\patch>for %f in ("C:\patch\report.txt") do echo "%~nxf"

C:\app\patch>echo "report.txt"
"report.txt"

C:\app\patch>echo >C:\patch\RePoRt.TxT

C:\app\patch>for %f in ("C:\patch\report.txt") do echo "%~nxf"

C:\app\patch>echo "RePoRt.TxT"
"RePoRt.TxT"
как этой заразе сказать, чтобы не лазила на мой диск?
22.03.2023 23:07
OlegON
 
Код:
for /f "Tokens=*" %%F in ('dir /l /b /s "C:\patch\*"') do FOR %%I in ("%%F") DO echo "%%F" "%%~nxI"
ну это уже даже не смешно
"c:\patch\report.txt" "RePoRt.TxT"
22.03.2023 23:44
OlegON
 
очень бы не хотелось через третью точку переименовывать, опасно...
23.03.2023 08:52
student
 
Цитата:
OlegON ну это уже даже не смешно
это давно извечная фича винды :) посмотри
Часовой пояс GMT +3, время: 21:23.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.