将文件从一个文件夹复制到另一个文件夹,然后使用当前 date/time 重命名,并使用 PowerShell 或 Python 脚本重命名新文件
Copy file from one folder to another and then rename using current date/time and new file ext using PowerShell or Python script
我没有任何使用 PowerShell 脚本的经验,所以我需要一些帮助来创建一个简单的 shell 脚本。 shell 脚本需要执行以下操作:
脚本将在目录 M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\CRM_Upload.upl
.
中查找文件扩展名为 .upl
的文件名
shell脚本需要将.upl
文件复制到同目录下的文件夹中,目标文件夹名为"Uploads"(xfer\uploads
).
shell 脚本还需要将当前 date/time (hhmmssmmddyyyy
) 复制到上传文件后附加到文件名的末尾带下划线的文件夹 (CRM_Upload_hhmmssmmddyyyy
).
最后 shell 脚本需要将文件扩展名更改为 .txt
而不是原来的 .upl
(CRM_Upload_hhmmssmmddyyyy.txt
).
据我所知:
这是我使用 PowerShell 脚本进行的另一次尝试...我希望它复制文件并重命名而不是移动它。有人可以帮我解决这个问题吗?
Function RenameMoveFile($locationPath, $fileName, $extension1, $extension2, $archiveFolder)
{
$date = Get-Date -uFormat ""%y%m%d-%H%M%S""
$old = $locationPath + $fileName + $extension1
$new = $locationPath + $fileName + "_" + $date + $extension2
$archiveFolder = $locationPath + $archiveFolder + "\"
Rename-Item $old $new
Move-Item $new $archiveFolder
}
## This is the only part that we'd edit
RenameMoveFile -locationPath "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer" -fileName "CRM_DIALER_UPLOAD" - extension1 ".upl" -extension2 ".txt" -archiveFolder "Uploads"
*** 这是我正在尝试处理的 Python 脚本,但它仍然不正确..
导入 shutil
导入日期时间
变量定义
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + '_' + str(date) + '.txt'
主脚本
shutil.copy(source_file, dest)
***经过一些努力和反复试验,我的脚本开始工作了..
import shutil
import datetime
### Variable Definitions
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + 'CRM_DIALER_UPLOAD' + '_' + str(date) + '.txt'
### Main Script
shutil.copy(source_file, dest)
对于 windows 中的 shell 脚本,您可以使用批处理 (.bat),但我更喜欢 (.vbs)
这是您想要的 VbScript:
Dim fso, folder, objFolder, file, objFile
Dim strDir, strFileExtension, strNewDir, strNewExtension, strDate
' Parameters
strDir = "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\"
strFileExtension = ".upl"
strNewDir = "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\uploads\"
strNewExtension = ".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(strDir)
' create new dir
If Not fso.FolderExists(strNewDir) Then
Set objFolder = fso.CreateFolder(strNewDir)
End If
' search for file, get date, then copy and rename
For each file In folder.Files
If (InStr(file.name, ".") > 0) Then
If (LCase(Mid(file.name, InStrRev(file.name, "."))) = strFileExtension) Then
' get only the file name
Set objFile = fso.GetFile(file.name)
' get date
strDate = Right("0" & DatePart("h",now), 2) _
& Right("0" & DatePart("n",now), 2) _
& Right("0" & DatePart("s",now), 2) _
& Right("0" & DatePart("m",now), 2) _
& Right("0" & DatePart("d",now), 2) _
& DatePart("yyyy",now) _
' copy file
CreateObject("Scripting.FileSystemObject").CopyFile file.name, strNewDir & fso.GetBaseName(objFile) & "_" & strDate &
strNewExtension
End If
End If
Next
import shutil
import datetime
### Variable Definitions
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + 'CRM_DIALER_UPLOAD' + '_' + str(date) + '.txt'
### Main Script
shutil.copy(source_file, dest)
我没有任何使用 PowerShell 脚本的经验,所以我需要一些帮助来创建一个简单的 shell 脚本。 shell 脚本需要执行以下操作:
脚本将在目录
M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\CRM_Upload.upl
. 中查找文件扩展名为 shell脚本需要将
.upl
文件复制到同目录下的文件夹中,目标文件夹名为"Uploads"(xfer\uploads
).shell 脚本还需要将当前 date/time (
hhmmssmmddyyyy
) 复制到上传文件后附加到文件名的末尾带下划线的文件夹 (CRM_Upload_hhmmssmmddyyyy
).最后 shell 脚本需要将文件扩展名更改为
.txt
而不是原来的.upl
(CRM_Upload_hhmmssmmddyyyy.txt
).
.upl
的文件名
据我所知:
这是我使用 PowerShell 脚本进行的另一次尝试...我希望它复制文件并重命名而不是移动它。有人可以帮我解决这个问题吗?
Function RenameMoveFile($locationPath, $fileName, $extension1, $extension2, $archiveFolder)
{
$date = Get-Date -uFormat ""%y%m%d-%H%M%S""
$old = $locationPath + $fileName + $extension1
$new = $locationPath + $fileName + "_" + $date + $extension2
$archiveFolder = $locationPath + $archiveFolder + "\"
Rename-Item $old $new
Move-Item $new $archiveFolder
}
## This is the only part that we'd edit
RenameMoveFile -locationPath "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer" -fileName "CRM_DIALER_UPLOAD" - extension1 ".upl" -extension2 ".txt" -archiveFolder "Uploads"
*** 这是我正在尝试处理的 Python 脚本,但它仍然不正确..
导入 shutil 导入日期时间
变量定义
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + '_' + str(date) + '.txt'
主脚本
shutil.copy(source_file, dest)
***经过一些努力和反复试验,我的脚本开始工作了..
import shutil
import datetime
### Variable Definitions
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + 'CRM_DIALER_UPLOAD' + '_' + str(date) + '.txt'
### Main Script
shutil.copy(source_file, dest)
对于 windows 中的 shell 脚本,您可以使用批处理 (.bat),但我更喜欢 (.vbs)
这是您想要的 VbScript:
Dim fso, folder, objFolder, file, objFile
Dim strDir, strFileExtension, strNewDir, strNewExtension, strDate
' Parameters
strDir = "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\"
strFileExtension = ".upl"
strNewDir = "M:\ProgramData\Aspect Software\Unified IP\Advanced List Management\tenant1\xfer\uploads\"
strNewExtension = ".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(strDir)
' create new dir
If Not fso.FolderExists(strNewDir) Then
Set objFolder = fso.CreateFolder(strNewDir)
End If
' search for file, get date, then copy and rename
For each file In folder.Files
If (InStr(file.name, ".") > 0) Then
If (LCase(Mid(file.name, InStrRev(file.name, "."))) = strFileExtension) Then
' get only the file name
Set objFile = fso.GetFile(file.name)
' get date
strDate = Right("0" & DatePart("h",now), 2) _
& Right("0" & DatePart("n",now), 2) _
& Right("0" & DatePart("s",now), 2) _
& Right("0" & DatePart("m",now), 2) _
& Right("0" & DatePart("d",now), 2) _
& DatePart("yyyy",now) _
' copy file
CreateObject("Scripting.FileSystemObject").CopyFile file.name, strNewDir & fso.GetBaseName(objFile) & "_" & strDate &
strNewExtension
End If
End If
Next
import shutil
import datetime
### Variable Definitions
from System import Environment
data_dir_base = Environment.GetEnvironmentVariable('LMSRVSHARED')
xfer_dir = data_dir_base + "tenant1\xfer\"
source_file = xfer_dir + "CRM_DIALER_UPLOAD.txt"
now = datetime.datetime.now()
date = now.strftime("%Y%m%d_%H%M%S")
new_folder = xfer_dir + "Uploads\"
dest = new_folder + 'CRM_DIALER_UPLOAD' + '_' + str(date) + '.txt'
### Main Script
shutil.copy(source_file, dest)