运行命令以查找路径中最近修改的目录时,我一直收到以下错误:从PowerShell远程执行:
head:术语“head”不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
At line 1: char: 95
+ ... d /somedir ; (lastmod=$(ls -tda -- */ | head -n 1); ....
我正在按照以下方式运行代码:
& plink "bob@server" "cd /somedir ; (lastmod=$(ls -tda -- */ | head -n 1); ls -la $lastmod)"
答案 0 :(得分:2)
您已将命令封装在双引号中,因此PowerShell正在扩展$
符号。如果你使用单引号,这将不会发生。
答案 1 :(得分:0)
为了补充布鲁斯的答案,你还可以使用重写词(`)来逃避双引号字符串中的特殊字符,这是powershell中的转义字符。
& plink "bob@server" "cd /somedir ; (lastmod=$(ls -tda -- */ `| head -n 1); ls -la $lastmod)"
这意味着如果您确实需要字符串中的任何变量,您仍然可以使用特殊字符。