我需要在文件中获取有关使用perl脚本进行上次修改的信息 下面是相关代码:
#where $file equals "MyFile.txt"
$backslash = "\\";
$upTwoLayersHelper = "..$backslash..$backslash";
@fileInfo = qx(forfiles /M $file /P $upTwoLayersHelper /C "cmd /c echo @fdate @ftime");
qx是perl中的一个函数,它允许执行系统命令并将输出重定向到变量
我已经考虑过使用stat
并且它一直在返回
Dec 31 of like 1960
所以this对我不起作用:/
我使用变量$backslash
和$upTwoLayersHelper
来安全地构建'路径,因为Windows喜欢使用\而不是/我测试,以确保变量插入qx(... here ...)函数调用。
我的问题是我得到的唯一输出是
ECHO is on.
当我打印@fileInfo
变量
但是当我在qx(...)函数中运行相同的命令时,调用perl的外部,并且只是从命令行批处理作为命令它工作并返回正确的日期信息
我在perl脚本中做错了什么?
谢谢你的时间!
答案 0 :(得分:3)
@fileInfo = qx(for %x in ($file) do echo %~tx);
也许?
用于此类目的的cmd
命令是
for %x in (filename) do echo %~tx
(将文件名分配给元变量%x
,然后echo
该文件的[修改]日期)
如果在批处理中而不是在提示符中执行,则%
需要%%
。
ECHO is on.
是echo
语句的特征,没有参数。
我不确定two directories
更高的想法是什么,但如果这是您的目标文件所在的位置,那么您需要使用{{1} nett前缀filename
}}
也许
..\..\
其中无论是什么你提出的qx(echo %* whatever)
命令将产生cmd
在所有转义字符解析后得到的结果(cmd
表示"所有提供的参数&#34)