Мне нужно переименовать несколько файлов на моем сервере. Для этого я делаю проект на C # в Visual Studio. (дополнительная информация: этот проект должен делать и другие вещи)
Сейчас я пытаюсь вызвать командный файл из этого проекта. Этот пакетный файл должен переименовать файл, используя старое и новое имя файла.
Вот код из командного файла:
@echo off
set FILENAME_OLD="%~1"
set FILENAME_NEW="%~nx2"
ren %FILENAME_OLD% %FILENAME_NEW%
set error=%errorlevel%
echo %error%
Это код в моем проекте c #:
process.StartInfo.FileName = location;
process.StartInfo.Arguments = string.Format("\"{0}\" \"{1}\"", oldfilename, newfilename);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
result = process.StandardOutput.ReadLine();
В результате я всегда получаю 1. Что означает, что «ren» не работает. Что я здесь не так делаю?
Все имена файлов имеют такую структуру в моем проекте c #: @ "C: \ test \ test \ test.bat"
РЕДАКТИРОВАТЬ:
Я подошел несколько ближе к решению. Проблема заключалась в том, что я не могу передать двойные кавычки в качестве аргумента. Мне нужны эти двойные кавычки, так как некоторые из моих имен файлов содержат пробелы.
Как правильно передать эти имена файлов в этот пакетный файл?