1
auh 2022-04-20 23:48:50 +08:00
改脚本。找到脚本中判断文件名的地方。兼容一下。具体兼容找看语言和方式。搜索关键词,编程语言加你的问题。
另外,文件名出现问题,内容可能存在同样的问题。如果处理结果也会依赖内容,注意处理结果的准确性。 |
3
auh 2022-04-21 00:19:50 +08:00
|
4
jones2000 2022-04-21 00:44:43 +08:00
将处理文件的脚本独立出来, 每次处理 1 个文件, 外部单独写一个脚本循环读取文件名,单独起进程给这个处理脚本处理,这样就算 1 个文件处理失败了,也不会导致后面的文件不处理。 增加日志, 处理完成的文件名写入到一个日志里面。这样跑完所有的文件,异常的文件通过所有文件列表-处理完成文件列表可以得到, 然后异常的文件单独手动处理吧。
|
5
flynaj 2022-04-21 08:26:47 +08:00
"" '' 把文件名包起来。只有操作系统能处理就行。 for /R d:\ /D %i in (*) do fsutil.exe file SetCaseSensitiveInfo "%i" enable
|
6
mateor95 OP @auh #3
现在问题就在于,源文件是每日生成每日处理的,但处理出来的文件是每周才进行一次处理。源文件已经没有了😭 |
7
mateor95 OP @jones2000 #4
看起来不存在直接找到这些文件的办法是吗?只能通过先处理一部分文件,再反向找这些不成功的文件是吗? |
8
mateor95 OP @flynaj #5
不好意思,手头没有 windows 可以测试。请问下有没有 linux 下的办法? |
9
skys215 2022-04-21 10:34:07 +08:00
文件名中包含 LF ?
|
10
darkengine 2022-04-21 10:36:08 +08:00
先批量处理重命名文件,把文件名里的 LF 去掉,再运行原脚本
|
11
jones2000 2022-04-21 10:40:04 +08:00
@mateor95 新的问题会一直出现的, 只能是有 1 个机制,可以确保正确的文件名可以运行,异常的文件可以列出来,这样才能快速的改进这个脚本, 否则你解决了这个问题,下次出来新的问题又要重新排查一遍, 多麻烦。
|
12
skys215 2022-04-21 10:42:50 +08:00 2
find ./ -name "*(ctrl+v ctrl+j)*" 就能找到文件名含 lf 的文件。
括号部分是你要按的键,而不是输入的内容。如果是 CR ,那就是 ctrl+v ctrl+m ,会显示为^M 相信重命名的命令对你来说也不是什么难事 |
13
mateor95 OP @darkengine 问题在于,“找不到”这些带 LF 的文件
|
15
dier 2022-04-21 11:16:50 +08:00
有个不是办法的办法,你可以试试
在这个目录下,尝试对每个文件使用 head 命令查看一下文件第一行,如果文件名有换行符,理论上是打不开的,然后就把打不开的文件名输出到一个 txt 中。 ```shell cd /path/ for FILENAME in $(ls) do head -n 1 ${FILENAME} > /dev/null 2>&1 || echo ${FILENAME} >> /tmp/LF_file_list.txt done ``` |
19
dier 2022-04-21 13:40:29 +08:00
@mateor95 #17 因为我没有你说的这种文件,所以没办法验证。不过你们的处理方式打不开的话可以把我脚本中的 head 命令替换成你们的处理方式试试。
|
22
skys215 2022-04-24 10:23:54 +08:00
通过 linux find filename with CRLF 找到了 ctrl+v ctrl+m 可以输入 CR
那只要再搜索如何输入 LF 就好了 |
23
xiubin 2022-11-12 18:23:53 +08:00
抱歉 同学,因找不到联系方式所以在老帖子里联系你,我最近开始玩 nas ,接触到了 pt 站,在 v2 上有看到过你曾经分享过馒头站的邀请码,冒昧的问下可以送一个邀请码吗,懂规矩,有上传和下载的。aW9zZ2dAb3V0bG9vay5jb20=
谢谢~ |