返回列表 发帖
回复 15# czjt1234
是的,我的1.txt 和这个批处理都在一个文件夹下就是test1 下面

TOP

回复 17# feiyan


    1.txt和批处理文件是不是都是ANSI编码

QQ 20147578

TOP

回复 17# czjt1234


    1.txt  不是的

TOP

回复 9# 77七
感谢,今天测试成功了。,我把1. txt  也设置了ansi  格式。非常感谢。

TOP

回复 10# yakeyun
感谢,今天测试成功了。,我把1. txt  也设置了ansi  格式。非常感谢。

TOP

回复 11# qixiaobin0715

感谢,今天测试成功了。,我把1. txt  也设置了ansi  格式。就可把程序跑起来了,非常感谢。

TOP

回复 11# qixiaobin0715
楼主,我在实际工作中发现我的路径和文件名都是空格的,但是只要是有空格的文件名就无法复制到指定文件夹下,能帮忙更新这个批处理吗?谢谢  ps, 我在1.txt 中,把文件名用双引号引起来,发现没有效果。

TOP

回复 9# 77七
楼主,我在实际工作中发现我的路径和文件名都是有空格的,但是只要是有空格的文件名就无法复制到指定文件夹下,能帮忙更新这个批处理吗?谢谢  ps, 我在1.txt 中,把文件名用双引号引起来,发现没有效果。

TOP

回复 23# feiyan


  
@echo off
rem 文本格式 "A" "1.pdf" "2.pdf"
rem 批处理保存为ansi编码格式
cd /d "C:\Users\Administrator\Desktop\test1\"
for /f "delims=" %%a in ('type "1.txt"') do (
        setlocal enabledelayedexpansion
        for %%b in (%%a) do (
                if defined folder (
                        if exist "D:\文件数据库\%%~b" (
                                copy "D:\文件数据库\%%~b" "!folder!"
                        ) else (
                                >>log.txt echo %%~b
                        )
                ) else (
                        set "folder=%%~b"
                        md "!folder!"
                )
        )
        endlocal
)
pauseCOPY
bat小白,请多指教!谢谢!

TOP

本帖最后由 qixiaobin0715 于 2023-9-26 10:51 编辑

回复 22# feiyan
实际上你才是楼主。
你可以把实际运行错误的几种情况发上来看看:比如路径有空格;文件名有空格...等等。
清单上的分隔符应当统一,如果列出的文件夹名或文件名中存在空格,那么文件夹名或文件名之间的分隔就不能再使用空格分隔了,这样会造成逻辑上的混乱。
清单内的具体格式可以使用24楼中的引号分隔方式为最优。

TOP

回复 24# 77七 非常感谢,运行成功了。

TOP

回复 25# qixiaobin0715
受教了

TOP

各位老师,对于1.txt 中包含的文件名,如果我想偷懒,用1*.pdf,  2*pdf  来代替实际文件名,发现程序就没法复制数据库里面的文件了。这个有办法解决吗?

TOP

回复 28# feiyan


@echo off
rem 文本格式 a|1.pdf|2*.pdf
rem 批处理保存为ansi编码格式
cd /d "C:\Users\Administrator\Desktop\test1\"
for /f "tokens=1* delims=|" %%a in ('type "1.txt"') do (
md "%%a" 2>nul
set "folder=%%a"
call :1 "%%b"
)
pause & exit
:1
for /f "tokens=1* delims=|" %%x in ("%~1") do (
if exist "D:\文件数据库\%%x" (
copy "D:\文件数据库\%%x" "%folder%"
) else (
>>log.txt echo %%x
)
if "%%y" neq "" (
call :1 "%%y"
) else (
exit /b
)
)COPY
bat小白,请多指教!谢谢!

TOP

回复 29# 77七 好像不成功,没有文件夹被创建出来,而且系统也没有报错,就提示了一句,请按任意键继续

TOP

返回列表