0

我需要切换本地驱动器上特定路径中存在的两个特定文件的名称,并想知道 .bat 或 .vbs 是否可以实现这一点。

换句话说,一旦执行脚本将“文件 A”与“文件 B”(“C:\Path A\File A.txt”与“C:\Path A\File B.txt”)交换并再次运行它将再次交换它们。

我也很想知道是否可以这样做:

1) 在这种情况下 -->> "C:\Some Path\File A.txt" 和 "D:\Some Other Path\File B.txt"

2)如果我想切换两个文件夹而不是两个文件。

4

1 回答 1

3

创建以下批处理文件并将其命名为您想要的任何名称。我正在使用名称“myRename.bat”。

:: myRename.bat
@echo off
SETLOCAL

:: verify the first file exists
if not exist "%~1" ( echo ERROR: File not found "%~1" & goto endofscript )

:: verify the second file exists
if not exist "%~2" ( echo ERROR: File not found "%~2" & goto endofscript )

:: Create a guaranteed unique string for temporarily naming one file
set instance=%date:~-4,4%%date:~-10,2%%date:~-7,2%
set instance=%instance%-%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
set instance=%instance%-%RANDOM%

:: rename the first file to a temporary name
ren "%~1" "%~nx1.%instance%"
:: rename the second file to the first file name
ren "%~2" "%~nx1"
:: rename teh first file to the second file name
ren "%~1.%instance%" "%~nx2"

:endofscript

假设此路径中存在这两个文件:

  • c:\temp\重命名 test\File A.txt
  • c:\temp\重命名测试\文件 B.txt

然后您可以运行以下命令,它们将交换名称:

myRename "c:\temp\Rename test\File A.txt" "c:\temp\Rename test\File B.txt"

如果未找到文件 A 或文件 B,则会在屏幕上报告该错误并且进程停止。

于 2012-10-14T04:13:28.457 回答