redapple2008 发表于 2022-7-6 09:22:42

【已解决】au3怎么处理文件或文件夹或文件和文件夹都有空格?

本帖最后由 redapple2008 于 2022-7-15 12:21 编辑

au3怎么处理文件或文件夹或文件和文件夹都有空格?

群友“纯洁的AvOne”给出如下解决方法,但对于有些语言不支持“号,大佬还有其他解决方法吗?
$lujing = 'D:\houlin and Jss\Dir'
$nLujing = StringRegExpReplace($lujing, '(?<=\\)([^\\]*\h+[^\\\r]+)', '"$1"')

itzyx 发表于 2022-7-7 22:12:27

$lujing = 'D:\houlin and Jss\Dir'
MsgBox(0,'',StringStripWS($lujing,8))   

删除所有空格

redapple2008 发表于 2022-7-8 21:26:10

itzyx 发表于 2022-7-7 22:12
$lujing = 'D:\houlin and Jss\Dir'
MsgBox(0,'',StringStripWS($lujing,8))   



那不就找不到了吗?

itzyx 发表于 2022-7-8 21:52:35

redapple2008 发表于 2022-7-8 21:26
那不就找不到了吗?

哈哈大佬不好意思我以为你要删除路径里面多的空格

afan 发表于 2022-7-8 23:12:03

1,最外层加引号难道不行? $lujing = '"D:\houlin and Jss\Dir"'
2,转为 dos 短路径

redapple2008 发表于 2022-7-9 11:33:46

afan 发表于 2022-7-8 23:12
1,最外层加引号难道不行? $lujing = '"D:\houlin and Jss\Dir"'
2,转为 dos 短路径

1方案不行,
2方案如果多层文件夹空格怎么解决?FileGetShortName只能解决一层空格。

afan 发表于 2022-7-9 12:32:43

redapple2008 发表于 2022-7-9 11:33
1方案不行,
2方案如果多层文件夹空格怎么解决?FileGetShortName只能解决一层空格。

你确定只能解决一层?仔细看帮助

redapple2008 发表于 2022-7-9 16:38:00

afan 发表于 2022-7-9 12:32
你确定只能解决一层?仔细看帮助

$longName="C:\Program Files (x86)\Internet Download Manager\IDM Backup Manager"
$shorName=FileGetShortName($longName)       
ConsoleWrite(@CRLF&$shorName&@CRLF)

C:\PROGRA~2\Internet Download Manager\IDM Backup Manager

afan 发表于 2022-7-9 16:54:37

redapple2008 发表于 2022-7-9 16:38
C:\PROGRA~2\Internet Download Manager\IDM Backup Manager

奇葩
$longName = @LocalAppDataDir
ConsoleWrite($longName & @CRLF)
$shorName = FileGetShortName($longName)
ConsoleWrite(@error & @CRLF & $shorName & @CRLF)

afan 发表于 2022-7-9 17:04:00

另外,你一直没说用途。外面加引号还没见过不能用的。不排除重定向。

redapple2008 发表于 2022-7-11 08:55:12

本帖最后由 redapple2008 于 2022-7-11 09:43 编辑

afan 发表于 2022-7-9 17:04
另外,你一直没说用途。外面加引号还没见过不能用的。不排除重定向。
$command = 'java -jar ItextDemo.jar ' & $file_old & ' '& $file_new & ' '& $mm_1 & ' ' & $mm_2

像这样的命令行,$file_old 和$file_new再加引号或空格都会报错。

lixiaolong 发表于 2022-7-15 10:07:02

redapple2008 发表于 2022-7-9 11:33
1方案不行,
2方案如果多层文件夹空格怎么解决?FileGetShortName只能解决一层空格。

1方案为什么不行?

tubaba 发表于 2022-7-15 10:41:09

楼主对单双引号的使用不够了解
$command = 'java -jar ItextDemo.jar ' & $file_old & ' '& $file_new & ' '& $mm_1 & ' ' & $mm_2
如果你的意思是file_old ,file_new 文件名或路径带有空格,那此参数需用双引号引用。



ExecRunAsV2.exe "/user:ra" "/nm:administrator" "/pw:XXXXX" "/dm:local" "/lf:1" "/cd:C:\" " ExecRunAsV2.exe ""/user:s""""/il:h"" ""/priv:e""   ""/cd:C:\"" """"C:\Windows\system32\cmd.exe""/k whoami /all"" "
你看懂了这些引号是如何使用的吗?答案在下面



redapple2008 发表于 2022-7-15 12:21:09

tubaba 发表于 2022-7-15 10:41
楼主对单双引号的使用不够了解
$command = 'java -jar ItextDemo.jar ' & $file_old & ' '& $file_new & ' ...

十分感谢,问题解决。

afan 发表于 2022-7-15 12:24:37

redapple2008 发表于 2022-7-15 12:21
十分感谢,问题解决。
跟我 5# 说的区别在哪?你用的单引号,不存在兔巴巴解释的
页: [1] 2
查看完整版本: 【已解决】au3怎么处理文件或文件夹或文件和文件夹都有空格?