У меня есть папка в операционной системе «Windows 10» с файлами, названными как;Переименование всех файлов в папке (замена слов/чисел, разделенных символом «_»)
afilename_1
bfilename_3
cfilename_2
Так оно и должно быть. Но мне нужно, чтобы оно сортировалось в соответствии с числами, добавленными после подчеркивания. Я хочу, чтобы слова перед подчеркиванием, а также они отображали описание файла.
Подсказка: Перестановка слов/чисел, разделенных символом «_».
Ожидаемый результат:
1_afilename
2_cfilename
3_bfilename
Любая идея, помимо ручного переименования?
P.S. Папка состоит из 100 файлов.
Решение на языке программирования Java является заметным, но не обязательным.
Обновление (10.01.2017): Ниже приведен пример кода Java, чтобы получить все имена файлов в качестве вывода.
File folder = new File("/xxx/ss/folder/");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles)
{ if (file.isFile())
{ System.out.println(file.getName());
} }
Теперь, думая, как получить каждое имя файла сразу и выполнить обмен в цикле.
Любые мысли?
Решение: Windows Powershell code работал.
Если вход: имена файлов следующего образом
xxx_afilename_1
xxx_bfilename_3
xxx_cfilename_2
затем следующий код помогает в получении аналогичного вывода, как указано выше.
ls | %{ ren $_ ($_.name -replace '.*?-(.*?)-(.*?)(\..*)','$2_$1$3') }
Ну вы можете использовать регулярное выражение отделить имена файлов и отформатировать их в соответствии с вашими потребностями. –
Покажите нам, что вы пробовали, возможно, в java, поскольку вы добавили этот тег. –
@ Snađошƒаӽ вот пример кода Java, который был создан для получения всех имен файлов в качестве вывода. 'File folder = new File ("/Users/you/folder/"); Файл [] listOfFiles = folder.listFiles(); for (Файл файла: listOfFiles) { if (file.isFile()) { System.out.println (file.getName()); } } ' Теперь подумайте, как получить каждое имя файла сразу и выполнить обмен в цикле. Есть предположения? – Varma