用脚本写一个无需指定路径自动获取当前路径;实现查找目录下所有符合自定类型的文件复制到自定义文件夹内;不用每次指定路径;自动获取;开头定义文件类型和自定义的文件夹名称,只需要复制文件不用复制文件的文件夹,不用弹出CMD对话框确认
时间: 2023-12-26 21:06:43 浏览: 85
以下是Python实现的脚本:
```python
import os
import shutil
file_type = ".txt" # 定义文件类型
folder_name = "my_folder" # 定义自定义文件夹名称
current_path = os.getcwd() # 获取当前路径
target_folder = os.path.join(current_path, folder_name) # 拼接目标文件夹路径
if not os.path.exists(target_folder): # 如果目标文件夹不存在,则创建
os.mkdir(target_folder)
for root, dirs, files in os.walk(current_path): # 遍历当前路径下的所有文件和文件夹
for file in files:
if file.endswith(file_type): # 判断文件类型是否符合要求
file_path = os.path.join(root, file) # 获取当前文件的完整路径
shutil.copy(file_path, target_folder) # 复制文件到目标文件夹
```
这个脚本会自动获取当前路径,然后遍历当前路径下的所有文件和文件夹,找到符合要求的文件类型,将其复制到自定义文件夹内。你只需要修改`file_type`和`folder_name`的值即可。
相关问题
用脚本写一个无需指定路径自动获取当前路径;实现查找目录下所有符合自定类型的文件复制到自定义文件夹内;不用每次指定路径;自动获取;开头定义文件类型和自定义的文件夹名称,只需要复制文件不用复制文件的文件夹
你可以使用以下的 BAT 脚本实现:
```
@echo off
setlocal enabledelayedexpansion
set "file_type=.txt"
set "target_dir=C:\MyTarget"
set "source_dir=%~dp0"
for /r "%source_dir%" %%i in ("*%file_type%") do (
set "filename=%%~ni"
set "extension=%%~xi"
set "file_dir=%%~dpi"
set "file_dir=!file_dir:%source_dir%=!"
set "file_dir=!file_dir:~1,-1!"
mkdir "%target_dir%" >nul
copy /y "%%~fi" "%target_dir%\!filename!!extension!" >nul
)
echo "Copy completed!"
pause
```
以上脚本会将当前目录下所有文件夹中的后缀为 .txt 的文件复制到 C:\MyTarget 文件夹中,并且会在命令行中输出“Copy completed!”信息。此外,这个脚本会在目标文件夹中创建文件,但不会复制源文件夹的目录结构。你可以将脚本中的 `file_type` 和 `target_dir` 变量值修改为你需要的类型和路径。
用Windows脚本实现自动获取当前路径后查找目录下面所有定义的文件类型并复制到自定义文件夹内,然后将自定义文件夹及其包含的所有文件移动到指定文件夹:开头定义三种文件类型和三种自定义文件夹名称以及一种指定的文件夹名称;移动到指定文件夹内保留指定文件夹的自定义文件夹;移动后根据文件类型放置定义的文件夹内
好的,以下是一个实现该功能的Windows脚本:
```
@echo off
setlocal
rem 定义三种文件类型
set file_types=*.txt *.docx *.pdf
rem 定义三种自定义文件夹名称
set folder_name1=folder1
set folder_name2=folder2
set folder_name3=folder3
rem 定义指定文件夹名称
set dest_folder=destination_folder
rem 获取当前路径
set current_dir=%cd%
rem 复制符合条件的文件到自定义文件夹中
for %%i in (%file_types%) do (
for /r "%current_dir%" %%j in (%%i) do (
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
if not exist "%folder_path%\%%~nxi" md "%folder_path%\%%~nxi"
xcopy "%%j" "%folder_path%\%%~nxi\" /y
)
)
)
rem 移动自定义文件夹及其包含的所有文件到指定文件夹
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
if exist "%current_dir%\%dest_folder%\%folder_name%" rd /s /q "%current_dir%\%dest_folder%\%folder_name%"
md "%current_dir%\%dest_folder%\%folder_name%"
move "%folder_path%" "%current_dir%\%dest_folder%\%folder_name%"
)
rem 根据文件类型放置定义的文件夹内
for /d %%f in ("%folder_name1%" "%folder_name2%" "%folder_name3%") do (
set folder_path=%%~ff
set folder_name=%%~nxf
for %%i in (%file_types%) do (
for /r "%current_dir%\%dest_folder%\%folder_name%" %%j in (%%i) do (
if not exist "%folder_path%\%%~nxi" md "%folder_path%\%%~nxi"
move "%%j" "%folder_path%\%%~nxi"
)
)
)
endlocal
```
该脚本首先定义了三种文件类型和三种自定义文件夹名称以及一个指定的文件夹名称。然后获取当前路径并复制符合条件的文件到自定义文件夹中。接着,脚本遍历三个自定义文件夹并将其移动到指定文件夹中,并根据文件类型将文件放置到相应的自定义文件夹中。
阅读全文