如何在c#中使用Process通过批处理重命名文件

西蒙·迪斯梅特

我必须重命名服务器上的多个文件。为此,我在 Visual Studio 中创建了 ac# 项目。(侧面信息:这个项目也必须做其他事情)现在我尝试从那个项目调用一个批处理文件。此批处理文件必须使用旧文件名和新文件名重命名文件。

这是批处理文件中的代码:

@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"

编辑:

我有点接近解决方案。问题是我不能将双引号作为参数传递。我需要那些双引号,因为我的一些文件名包含空格。如何将这些文件名正确传递给该批处理文件?

西蒙·迪斯梅特

我设法用我认为“肮脏”的方式解决了这个问题:

//I changed newfilename so it's only the filename with extention and not the full path anymore.
string text = "\"" + oldfilename+ "\"" + " " + "\"" + newfilename;

System.IO.File.WriteAllText(@"c:\test\test.txt", text);

process.StartInfo.FileName = location;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
result = process.StandardOutput.ReadLine();

如您所见,我将参数写入了 txt 文件,以便对引号进行转义。

批处理文件现在就像这样简单:

set /p arguments=<c:\test\test.txt
ren %arguments%
echo %errorlevel%

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Windows 中使用批处理重命名文件夹?

来自分类Dev

如何使用批处理脚本使用模式重命名文件

来自分类Dev

如何重命名批处理文件

来自分类Dev

如何在批处理文件中批量重命名带有多个点的文件?

来自分类Dev

在批处理脚本中使用 WMIC 重命名 PC 的问题

来自分类Dev

如何在Subversion中使用@字符移动/重命名文件

来自分类Dev

如何在PowerShell中使用条件语句重命名文件

来自分类Dev

如何使用批处理脚本重命名多个文件夹和子文件?

来自分类Dev

使用批处理脚本重命名文件夹

来自分类Dev

使用批处理脚本旋转重命名编号文件

来自分类Dev

如何在C#中使用字符串格式重命名文件?

来自分类Dev

如何在重命名功能(c ++)中使用变量?

来自分类Dev

如何通过批处理脚本将8字符文件重命名为9字符文件?

来自分类Dev

如何在批处理文件中使用嵌套的FOR循环

来自分类Dev

如何在批处理文件中使用`%`

来自分类Dev

如何在批处理文件中使用if语句?

来自分类Dev

如何在批处理文件中使用sed命令

来自分类Dev

如何在批处理文件中使用启动命令

来自分类Dev

以“-”开头的批处理重命名文件?

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

批处理文件重命名与Python

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

批处理文件以通过向每个文件添加不同的后缀来重命名文件

来自分类Dev

如何通过删除特殊字符而不在Linux Shell中使用重命名来批量重命名文件

来自分类Dev

如何在C ++中重命名文件

来自分类Dev

了解批处理文件中的for循环以通过替换字符串来重命名文件

来自分类Dev

重命名子文件夹中的文件并通过批处理覆盖

来自分类Dev

如何在通过批处理文件中的 URI 连接到数据库后在 psql 中使用 \copy?

来自分类Dev

批处理:通过用零填充数字来重命名文件

Related 相关文章

  1. 1

    如何在 Windows 中使用批处理重命名文件夹?

  2. 2

    如何使用批处理脚本使用模式重命名文件

  3. 3

    如何重命名批处理文件

  4. 4

    如何在批处理文件中批量重命名带有多个点的文件?

  5. 5

    在批处理脚本中使用 WMIC 重命名 PC 的问题

  6. 6

    如何在Subversion中使用@字符移动/重命名文件

  7. 7

    如何在PowerShell中使用条件语句重命名文件

  8. 8

    如何使用批处理脚本重命名多个文件夹和子文件?

  9. 9

    使用批处理脚本重命名文件夹

  10. 10

    使用批处理脚本旋转重命名编号文件

  11. 11

    如何在C#中使用字符串格式重命名文件?

  12. 12

    如何在重命名功能(c ++)中使用变量?

  13. 13

    如何通过批处理脚本将8字符文件重命名为9字符文件?

  14. 14

    如何在批处理文件中使用嵌套的FOR循环

  15. 15

    如何在批处理文件中使用`%`

  16. 16

    如何在批处理文件中使用if语句?

  17. 17

    如何在批处理文件中使用sed命令

  18. 18

    如何在批处理文件中使用启动命令

  19. 19

    以“-”开头的批处理重命名文件?

  20. 20

    重命名文件模式Windows批处理

  21. 21

    批处理文件重命名与Python

  22. 22

    重命名文件模式Windows批处理

  23. 23

    批处理文件以通过向每个文件添加不同的后缀来重命名文件

  24. 24

    如何通过删除特殊字符而不在Linux Shell中使用重命名来批量重命名文件

  25. 25

    如何在C ++中重命名文件

  26. 26

    了解批处理文件中的for循环以通过替换字符串来重命名文件

  27. 27

    重命名子文件夹中的文件并通过批处理覆盖

  28. 28

    如何在通过批处理文件中的 URI 连接到数据库后在 psql 中使用 \copy?

  29. 29

    批处理:通过用零填充数字来重命名文件

热门标签

归档