У меня есть сервер Windows Server 2003, который имеет целый набор имен файлов то переименование потребности. В основном мне просто нужны все -
(дефисы), замененные _
(символы нижнего подчеркивания), неважно, где они находятся в имени файла. Предположите, что нет никаких дубликатов.
Я могу сделать это на своем Mac с небольшим сценарием, но файлы являются слишком большими и сумасшедшими передать моему Mac, переименуйте, затем вернитесь к серверу. Действительно ли возможно сделать это в командной строке Windows, не имея необходимость загружать renamer или какое-либо дополнительное программное обеспечение?
От командной строки - предполагающий, что все Ваши файлы находятся в том же каталоге:
for /f "tokens=* delims= " %i in ('dir /b "*.txt"') do Set LIST=%i& set LIST | ren "%~fi" "%LIST:-=_%"
Следует иметь в виду, что это - выстрел того на окно командной строки. Это означает, отменяете ли Вы это по какой-либо причине, затем необходимо будет открыть другую командную строку и работать снова.
Найденный им на stackoverflow:
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = New RegExp
re.Pattern = "[-]" ' put all characters that you want to strip inside the brackets'
re.IgnoreCase = True
re.Global = True
If WScript.Arguments.Unnamed.Count = 1 Then
If fso.FolderExists(WScript.Arguments.Unnamed(0)) Then
Recurse fso.GetFolder(WScript.Arguments.Unnamed(0))
Else
WScript.Echo "Folder not found."
End If
Else
WScript.Echo "Please give folder name as argument 1."
End If
Sub Recurse(f)
For Each sf In f.SubFolders
Recurse sf
WScript.Echo sf.Name, " -> ", re.Replace(sf.Name, "_")
sf.Name = re.Replace(sf.Name, "_")
Next
For Each sf In f.Files
WScript.Echo sf.Name, " -> ", re.Replace(sf.Name, "_")
If sf.Name <> re.Replace(sf.Name, "_" ) Then
sf.Name = re.Replace(sf.Name, "_")
End If
Next
End Sub
12 полудня имеет утилиту FREE, чтобы сделать массовое переименование файла с полной поддержкой регулярного выражения, которая довольно прохладна. "Назовите Обманщика" информационной страницей со ссылками для загрузки
Я не использовал этого в гневе, но использовал другие их приложения (особенно преобразователь дисплея) и был действительно счастлив.