Introduction:
Sometimes we need to move a particluar dir and contents into another machine.In this article i am going to explain this task with Windows Shell Script.
Main:
Here i pasted two scripts,one for extracting and another for Compressing,
Extracting.vbs
<strong>Dim strPath, strPath1, strFileName, intLen, strText, oLinesRead
Const ForAppending = 8
Const ForReading = 1
Const ForWriting = 2
strPath1 = Trim(" ")
Set oFSO = CreateObject("Scripting.FileSystemObject")
strPath = InputBox("Enter Folder Path: ", "Hello ")
Set fMaster = oFSO.OpenTextFile(strPath & "\##MasterFile.txt", ForReading)
Do While fMaster.AtEndOfStream <> True
strText = fMaster.ReadLine
if Mid(strText,1,15) = "<###NetProgrammingHelp###>S" then
strFileName = Trim (Mid(strText,17))
subWriteFile
else if Mid(strText,1,15) = "<###NetProgrammingHelp###>C" then
strPath1 = Trim (Mid(strText,17))
subCreateFolder
end if
end if
Loop
fMaster.Close
Set fMaster = oFSO.GetFile(strPath & "\##MasterFile.txt")
fMaster.Delete
MsgBox "Extraction completed !!!", ,"Success"
'----------- Sub fuctions --------------------------------------------------------------------
Sub subWriteFile
Dim Flag
Flag = 0
'MsgBox strPath & strPath1 & "\" & strFileName
Set fCurrFile = oFSO.OpenTextFile(strPath & strPath1 & "\" & strFileName, ForWriting, true)
Do While Flag = 0
strText = fMaster.ReadLine
if Mid(strText,1,15) = "<###NetProgrammingHelp###>E" then
Flag = 1
else
fCurrFile.WriteLine strText
end if
Loop
fCurrFile.Close
Set fCurrFile = Nothing
End sub
Sub subCreateFolder
Dim Dummy
Set Dummy = oFSO.CreateFolder(strPath & strPath1)
Set Dummy = Nothing
End sub</strong>
<strong>Dim strPath, strPath1, strFileName, intLen, strText, oLinesRead
Const ForAppending = 8
Const ForReading = 1
Const ForWriting = 2
strPath1 = Trim(" ")
Set oFSO = CreateObject("Scripting.FileSystemObject")
strPath = InputBox("Enter Folder Path: ", "Hello ")
Set fMaster = oFSO.OpenTextFile(strPath & "\##MasterFile.txt", ForReading)
Do While fMaster.AtEndOfStream <> True
strText = fMaster.ReadLine
if Mid(strText,1,15) = "<###NetProgrammingHelp###>S" then
strFileName = Trim (Mid(strText,17))
subWriteFile
else if Mid(strText,1,15) = "<###NetProgrammingHelp###>C" then
strPath1 = Trim (Mid(strText,17))
subCreateFolder
end if
end if
Loop
fMaster.Close
Set fMaster = oFSO.GetFile(strPath & "\##MasterFile.txt")
fMaster.Delete
MsgBox "Extraction completed !!!", ,"Success"
'----------- Sub fuctions --------------------------------------------------------------------
Sub subWriteFile
Dim Flag
Flag = 0
'MsgBox strPath & strPath1 & "\" & strFileName
Set fCurrFile = oFSO.OpenTextFile(strPath & strPath1 & "\" & strFileName, ForWriting, true)
Do While Flag = 0
strText = fMaster.ReadLine
if Mid(strText,1,15) = "<###NetProgrammingHelp###>E" then
Flag = 1
else
fCurrFile.WriteLine strText
end if
Loop
fCurrFile.Close
Set fCurrFile = Nothing
End sub
Sub subCreateFolder
Dim Dummy
Set Dummy = oFSO.CreateFolder(strPath & strPath1)
Set Dummy = Nothing
End sub</strong> |
Compressing.vbs
<strong>
Dim strPath, strPath1, strFileName, intLen, strText, oLinesRead
Const ForAppending = 8
Const ForReading = 1
Set oFSO = CreateObject("Scripting.FileSystemObject")
strPath = InputBox("Enter Folder Path: ", "Hello Mr.")
intLen = len(strPath)
if Mid(strPath,intLen) = "\" then
intLen = intLen - 1
end if
'msgbox intLen
Set fList = oFSO.CreateTextFile(strPath & "\##FileList.txt", True)
DoStuff oFSO.GetFolder(strPath).Path
fList.close
Set fList = oFSO.OpenTextFile(strPath & "\##FileList.txt", ForReading)
Set fMaster = oFSO.OpenTextFile(strPath & "\##MasterFile.txt", ForAppending, True)
'To Skip first line
strPath1 = Trim(fList.ReadLine)
fList.ReadLine
Do While fList.AtEndOfStream <> True
strText = fList.ReadLine
'MsgBox "Line read from List " & strText
'MsgBox "Mid Sting -->" & Mid(strText,1,1)
if Mid(strText,1,1) = "\" then
strPath1 = Trim(strText)
fMaster.WriteLine "<###NetProgrammingHelp###>C " & strPath1
else
strFileName = Trim(strText)
fMaster.WriteLine "<###NetProgrammingHelp###>S " & strFileName
'MsgBox strPath & strPath1 & "\" & strFileName
Set fCurrFile = oFSO.OpenTextFile(strPath & strPath1 & "\" & strFileName , ForReading)
oLinesRead = fCurrFile.readall
fMaster.WriteLine oLinesRead
fMaster.WriteLine "<###NetProgrammingHelp###>E "
fCurrFile.Close
Set fCurrFile = Nothing
end if
Loop
fMaster.close
fList.Close
Set fList = oFSO.GetFile(strPath & "\##FileList.txt")
fList.Delete
MsgBox "Compression completed !!!", ,"Success"
'----------- Sub fuctions --------------
Sub DoStuff(sDir)
fList.WriteLine Mid(sDir,IntLen+1)
Set oDir = oFSO.GetFolder(sDir)
For Each i In oDir.Files
fList.WriteLine i.Name
Next
'fList.WriteLine ""
For Each i In oDir.SubFolders
DoStuff i.Path
Next
End Sub
</strong>
<strong>
Dim strPath, strPath1, strFileName, intLen, strText, oLinesRead
Const ForAppending = 8
Const ForReading = 1
Set oFSO = CreateObject("Scripting.FileSystemObject")
strPath = InputBox("Enter Folder Path: ", "Hello Mr.")
intLen = len(strPath)
if Mid(strPath,intLen) = "\" then
intLen = intLen - 1
end if
'msgbox intLen
Set fList = oFSO.CreateTextFile(strPath & "\##FileList.txt", True)
DoStuff oFSO.GetFolder(strPath).Path
fList.close
Set fList = oFSO.OpenTextFile(strPath & "\##FileList.txt", ForReading)
Set fMaster = oFSO.OpenTextFile(strPath & "\##MasterFile.txt", ForAppending, True)
'To Skip first line
strPath1 = Trim(fList.ReadLine)
fList.ReadLine
Do While fList.AtEndOfStream <> True
strText = fList.ReadLine
'MsgBox "Line read from List " & strText
'MsgBox "Mid Sting -->" & Mid(strText,1,1)
if Mid(strText,1,1) = "\" then
strPath1 = Trim(strText)
fMaster.WriteLine "<###NetProgrammingHelp###>C " & strPath1
else
strFileName = Trim(strText)
fMaster.WriteLine "<###NetProgrammingHelp###>S " & strFileName
'MsgBox strPath & strPath1 & "\" & strFileName
Set fCurrFile = oFSO.OpenTextFile(strPath & strPath1 & "\" & strFileName , ForReading)
oLinesRead = fCurrFile.readall
fMaster.WriteLine oLinesRead
fMaster.WriteLine "<###NetProgrammingHelp###>E "
fCurrFile.Close
Set fCurrFile = Nothing
end if
Loop
fMaster.close
fList.Close
Set fList = oFSO.GetFile(strPath & "\##FileList.txt")
fList.Delete
MsgBox "Compression completed !!!", ,"Success"
'----------- Sub fuctions --------------
Sub DoStuff(sDir)
fList.WriteLine Mid(sDir,IntLen+1)
Set oDir = oFSO.GetFolder(sDir)
For Each i In oDir.Files
fList.WriteLine i.Name
Next
'fList.WriteLine ""
For Each i In oDir.SubFolders
DoStuff i.Path
Next
End Sub
</strong> |
Conclusion:
Hope,this helps,
Happy Coding.