Skip to main content

Copy all matching files

Batch file script to copy all matching files recursively.
Using the dir command and passing the values to the copy command the script below is able to copy files recursively.
Script can be run via PowerShell using the Invoke-Command cmdlet.

Invoke-command cmdlet with -Computer option and proper privileges the script below can be used to copy files on a remote computer provided that the correct path is specified.

Replacing the file name extension specified on “dir command” (*.txt) the script is able to copy any files by replacing or specifying the file extension.

Using PowerShell old batch file scripts if working properly doesn't need to be re-written but can be easily integrated and used by specifying Invoke-command and the batch file script filename.

To know more about the syntax of Invoke-Command, open PowerShell ISE and type Get-Help Invoke-Command -Full. The output displayed shows examples and explanation that can easily be followed.

Parameters explanation used on the batch file script:

   dir d:\Txt_Logs\*.txt /B /S

   d:\Txt_Logs\ - path specified for the text files

   *.txt – read or find only this file extension

   /B - Get the full path and the filename

   /S - Do a recursive listing

To dig further at cmd line type: dir /?

   xddmmyyyy=%date:~4,2%-%date:~7,2%-%date:~10,4% - gets the date in day-month-year format

   REM - means Remarks and batch file does not execute this line

To know more about using dates on batch file check out this link:

Here's the batch file script to copy files recursively:

REM get the current date when the batch file is executed
set  xddmmyyyy=%date:~4,2%-%date:~7,2%-%date:~10,4%

REM creates a new directory and uses the current date as folder name
md E:\File_logs_backup\%xddmmyyyy%

REM Do a recursive listing on the directory specified and copies all matching files
FOR /f "tokens=*" %%x in ('dir D:\Txt_Logs\*.txt /B /S') DO copy /y %%x E:\File_logs_backup\%xddmmyyyy%\

Cheers..till next time..


Popular posts from this blog

Copy a single file using robocopy

Copy a single file using robocopy from a local folder to a shared folder on the network.
A simple rule of thumb before any disaster strike, don't interchange the source and the destination.

If source and destination is mistakenly reverse, files might get overwritten. To avoid any loss of data do a test with a dummy file to ensure things work perfectly.
Robocopy [source][destination]   [file to be copied]
robocopy c:\local_c_folder  \\PC_network\shared_folder   file_to_be_copied_xx.txt
The command will be completed successfully provided the network access right has no issues.

Robocopy works quite good on large files. A simple copy or xcopy command will also work but the speed might vary.

Robocopy is free it can be accessed from command line. No need to install the resource kit tool if the operating system is Windows 7 or newer version.

Copy files with selected file extension using PowerShell and Robocopy:

$extension = ('.pdf', '.jpg', '.txt')
gci d:\WorkFolde…

WMIC get computer name

WMIC get computer model, manufacturer, computer name and  username.
WMIC is a command-line tool and that can generate information about computer model, its manufacturer, its username and other informations depending on the parameters provided.
Why would you need a command line tool if there’s a GUI to check?
If you have 20 or 100 computers, or even more. It’s quite a big task just checking the GUI to check the computer model and username.
If you have remote computers, you need to delegate someone in the remote office or location to check.
Or you can just write a batch file or script to automate the task.
Here’s the code below on how get computer model, manufacturer and the username.
Open an elevated command prompt and type:
wmic computersystem get "Model","Manufacturer", "Name", "UserName"
Just copy and paste the code above, the word “computersystem” does not need to be change to a computer name.
A sample output below will be generated if the co…