0
開始フォルダが指定されたスクリプトを作成し、すべてのフォルダとファイルをループすると想定され、パスが250より大きい場合は、ファイル。それは動作しますが、パスが259文字より大きい場合、パスはテキストファイルに書き込まれません。これは簡単に修正できますか?私のスクリプトは一番下にあります。ありがとうございますVBScriptが260文字を超える文字を読み取っていない
Const ForWriting = 2
dim x
StartFolder = "C:\Users\Sample\Desktop\Notess\Reports"
LogFile = "C:\Users\Sample\Desktop\rand.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.OpenTextFile(LogFile, ForWriting, True)
Call CheckFolder(StartFolder)
Set objFSO = Nothing
objLogFile.Close
Sub CheckFolder(Folder)
Set ArrFiles = objFSO.GetFolder(Folder).Files
For Each File In ArrFiles
x=len(file)
IF X > 250 THEN objLogFile.WriteLine (File & ", "& X)
Next
Set ArrSubFolders = objFSO.GetFolder(Folder).SubFolders
For Each SubFolder In ArrSubFolders
call CheckFolder(SubFolder)
Next
End Sub
はい、それは、Win32 APIによって負わさ制限です。これまで私が見つけたVBScriptのための唯一の実行可能な方法は、親フォルダを 'subst'を介してドライブレターにマッピングし、そのドライブから続行することによってパスを短縮することです。 –