为什么下面的代码不起作用?
-d和-f在我的Windows机器上不起作用。
use strict;
use warnings;
use Data::Dump qw/pp/;
my $path="C:/perl/workspace";
opendir ( DIR, $path ) || die "Error in opening dir $path\n";
my (@file,@dir);
while (my $filename=readdir(DIR)) {
next if ($filename =~ m/^\./);
if (-f $f
此代码对我有效,但在fabric crashlytics中报告在某些设备上不起作用,实际上mkdirs retrun false我之前已经检查过dir.exists()。
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/Gahvare/");
if (!dir.exists()) {
if (!dir.mkdirs()) {
Crashlytics.l
我有一条这样的路
/home/user/doc/loc
我想分别提取home,user,doc,loc。我尝试了split (////)和split("/"),但它们都不起作用。请给我示例脚本:
while (<EXPORT>) {
if (/^di/) {
($key, $curdir) = split(/\t/);
printf "the current dir is %s\n", $curdir;
printf("---------------------------------\n");
(
我希望将/c/users/me/dir name存储到一个变量中,以将其传递给cd系统调用。
输入时起作用:
$ cd '/c/users/me/dir name'
或
$ cd /c/users/me/dir\ name
但如果我把它储存起来就不起作用了:
$ dirname="'/c/users/me/dir name'"
$ cd $dirname
$ bash: cd: /c/users/me/dir: No such file or directory
同样的结果是:
$ dirname=('/c/users/me/dir na
string="*test"
for dir in $ALIGN_DIR/*/; do
if [[ -d $dir && $dir == "$string" ]]; then
continue
fi
done 这不起作用,例如$dir = '\home\something\test‘与$string不匹配,因此不会被跳过。
我所要做的就是从文件中读取目录列表,并列出目录中的文件。问题是目录路径中有空格,所以这不起作用:
#!/usr/bin/perl
use File::Spec;
open DIRNAMES, "<./dirnames";
while(my $dirname=<DIRNAMES>) {
opendir DIR,$dirname or die $!;
while (my $file = readdir(DIR)) {
# Use a regular expression to ignore files beginning with a p
我想让dir=%dir:~-在这里,%,一个变量。
我发现这个dir=%dir:~-%var%%不幸地不起作用。然后我试着:
set var=2
echo dir=%%dir:~-%var%%% > file.txt
for /f "tokens=* delims=" %%a in (file.txt) do set dir=%%a
但对于真正的%dir:~-2%,则是dir。如果有人理解我的话,我会问你有什么办法吗?丁烯
假设我在一个批处理文件中有如下步骤。
set dir=%CD%
cd ..\notes
dir /b *.tex > %dir%\log.txt
cd %dir%
如何在单个cmd调用中表达这些步骤?
我尝试调用,如下所示
cmd /c set dir=%CD% cd ..\notes dir /b *.tex > %dir%\log.txt cd %dir%
但它并没有起作用。
我想将$PWD/*赋给另一个变量。我尝试了以下两种方法:dir=${PWD/*}和dir=${PWD}/*,但这两种方法都不起作用。
结果:
$ dir=${PWD/*}
$ for i in $dir; do echo $i; done
#nothing
$ dir=${PWD}/*
$ for i in $dir; do echo $i; done
/current/working/dir/*
预期成果:
$ for i in $dir; do echo $i; done
/current/working/dir/dir1
/current/working/dir/dir2
/curr
我尝试使用svn ci dir/a dir/b -m "my comment“,但不起作用。我还使用了svn ci dir/a/* dir/b/* -m "my comment“,它也不起作用。
我知道您可以指定多个文件,但我如何告诉subversion签入这些文件夹中所有修改过的文件?我主要想这样做,这样我所做的所有更改都会在一个版本中生效。我可以一次签入一个目录,但这最终会为每个目录提供不同的修订。