gpt4 book ai didi

powershell - cmd中哪个符号是转义字符?

转载 作者:行者123 更新时间:2023-12-03 00:47:04 25 4
gpt4 key购买 nike

我有这个代码:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }"

用于下载文件。
当我在远程服务器上的 cmd 中执行它时 - 一切正常。
但是当我想使用 paexec 从我的计算机在远程服务器上执行这段代码时,我遇到了一些转义字符的问题。
在我的 CMD 中命令:

psexec.exe \\remoteServer.0.1 -u username -p password -dbg -lo D:\PsExec.log cmd /c "powershell -command "& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }""

我尝试使用^符号,但同样的错误;
代码使用 ^ 符号作为双引号:

psexec.exe \\remoteServer.0.1 -u username -p password -dbg -lo D:\PsExec.log cmd /c "powershell -command ^"& { (New-Object Net.WebClient).DownloadFile('linkToMyFile.file', 'C:\my.file') }^""

此外,我尝试使用 \(就像在 PHP 中一样)进行转义,但结果相同。
帮助解决这个问题或提供有关如何使用命令行远程下载文件的建议。

最佳答案

不幸的是,CMD 使用 different escape characters取决于逃脱的内容和位置。没有一种转义字符可以随处使用。

在大多数情况下,下一个字符是通过在其前面加上插入符 (^) 来转义的,例如在 for/f 循环中:

for /f "tokens=1" %%a in ('type file.txt ^| find "something"') do ...

但有时字符会通过加倍来转义,例如批处理脚本中的百分比字符 (%):

@echo off
echo %%DATE%%=%DATE%

有时您甚至可能需要输入其他转义字符(如反斜杠),因为您需要转义不是用于 CMD 的内容,而是用于将字符串传递给的命令:

mountvol | findstr /r \\\\

不过,您的特定场景不应该需要额外的引号或转义。直接运行 PowerShell 命令行,无需 cmd/c:

paexec.exe \\remoteServer.0.1 -u username -p password powershell -command "&{...}"

关于powershell - cmd中哪个符号是转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com