我想重命名一個文件並使用下面的代碼,但它似乎不工作。有人可以告訴我爲什麼嗎?我使用這個線程參考Rename files without copying in same folder使用VBScript重命名一個文件
FSO.GetFile(「MyFile.txt的),請將.Name = 」hello.txt的「
我想重命名一個文件並使用下面的代碼,但它似乎不工作。有人可以告訴我爲什麼嗎?我使用這個線程參考Rename files without copying in same folder使用VBScript重命名一個文件
FSO.GetFile(「MyFile.txt的),請將.Name = 」hello.txt的「
您可以通過移動它使用FSO的文件重命名:MoveFile Method
Dim Fso
Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
Fso.MoveFile "A.txt", "B.txt"
我看到的只有一個原因,你的代碼無法正常工作,錯過了報價文件名字符串後:
的VBScript:
FSO.GetFile("MyFile.txt[missed_quote_here]).Name = "Hello.txt"
這是真實的,也是更加優雅的解決方案。 – peter
Rename filename by searching the last character of name. For example,
Original Filename: TestFile.txt_001
Begin Character need to be removed: _
Result: TestFile.txt
Option Explicit
Dim oWSH
Dim vbsInterpreter
Dim arg1 'As String
Dim arg2 'As String
Dim newFilename 'As string
Set oWSH = CreateObject("WScript.Shell")
vbsInterpreter = "cscript.exe"
ForceConsole()
arg1 = WScript.Arguments(0)
arg2 = WScript.Arguments(1)
WScript.StdOut.WriteLine "This is a test script."
Dim result
result = InstrRev(arg1, arg2, -1)
If result > 0 then
newFilename = Mid(arg1, 1, result - 1)
Dim Fso
Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
Fso.MoveFile arg1, newFilename
WScript.StdOut.WriteLine newFilename
End If
Function ForceConsole()
If InStr(LCase(WScript.FullName), vbsInterpreter) = 0 Then
oWSH.Run vbsInterpreter & " //NoLogo " & Chr(34) & WScript.ScriptFullName & Chr(34)
WScript.Quit
End If
End Function
是的,你可以做到這一點。
這裏我重命名一個.exe文件.txt文件
重命名文件
Dim objFso
Set objFso= CreateObject("Scripting.FileSystemObject")
objFso.MoveFile "D:\testvbs\autorun.exe", "D:\testvbs\autorun.txt"
我不想移動的文件只是將其重命名ü..can給出的例子是什麼你說。 – user505210
我嘗試使用此代碼的MoveTo方法FSO.MoveTo \\ net \ stat \ help.txt \\ net \ stat \ main.css但它不起作用 – user505210
移動('MoveFile',而不是'MoveTo')卷與重命名沒有太大區別,它實際上是相同的操作:更新文件描述符而不復制實際數據。這基本上就是你沒有專門的重命名方法的原因。 –