我想写一个简短的PowerShell脚本来重命名文件,如:
abc(1), abc(2), .., abc(10), .., abc(123), ..
Run Code Online (Sandbox Code Playgroud)
至
abc(001), abc(002), .., abc(010), .., abc(123), ..
任何的想法?:)
今天我正在乱搞java.io.File方法,偶然发现了一些奇怪的东西.
当我重命名目录时,我似乎无法删除文件或新目录.
File dir = new File("dir");
dir.mkdir();
File file = new File(dir, "afile.txt");
file.createNewFile();
File newname = new File(dir, "newName.txt");
file.renameTo(newname);
File newdir = new File("newdir");
dir.renameTo(newdir);
System.out.println("file exists? " + file.exists());
System.out.println("file deleted? " + file.delete());
System.out.println("newname exists? " + newname.exists());
System.out.println("deleted newname? " + newname.delete());
System.out.println("dir exists? " + dir.exists());
System.out.println("dir deleted? " + dir.delete());
System.out.println("newdir exists? " + newdir.exists());
System.out.println("deleted newdir? " + newdir.delete());
Run Code Online (Sandbox Code Playgroud)
产量输出:
file exists? false
file deleted? false
newname exists? false
deleted newname? …Run Code Online (Sandbox Code Playgroud) 我试图用空格替换某些文件名中的下划线,例如:
this_is_a_file.pdf
Run Code Online (Sandbox Code Playgroud)
变为:
this is a file.pdf
Run Code Online (Sandbox Code Playgroud)
在Windows中使用批处理文件.
我发现了一个类似的问题,但它用空格替换空格: 如何从文件名中删除空格(批量)
可以轻松翻译成我想要的吗?
我运行一个小的批处理文件来重命名一些 txt 文件:
“C:\backup\t1-dd-dd t2-dd-dd.txt”
在文件名中d - 是一个数字(从 0 到 9);
注意:文件名中 t1 和 t2 标记之间有空格(我出于某种原因需要它)。
现在,我只需要替换文件名的“t1-dd-dd”部分中的数字。
使用 powershell Rename-Item 可以这样做(示例):
powershell -command "& { Get-ChildItem ?:\backup -filter 't1-* t2-*.txt' | Rename-Item -NewName { $_.Name -replace 't1-\d\d-\d\d','t1-00-99' } }"
Run Code Online (Sandbox Code Playgroud)
结果将是这样的:
C:\backup\t1-14-26 t2-56-48.txt(旧文件名)
C:\backup\t1-00-99 t2-56-48.txt(新文件名)
是否可以在没有 powershell 的情况下做同样的事情,只使用 cmd RENAME 命令?
我正在尝试上传文件并重命名它,如果它已经存在.我希望我做的方式是,当相同的文件上传时,名称只添加1,然后是2,然后是3,依此类推.
示例:如果存在文件"file",则新文件应为"file1",然后是下一个"file2".
我在网上看到过一些例子,但我认为没有什么能适合我的代码(noob)
这是我现在的代码:
$id = $_SESSION['id'];
$fname = $_FILES['dok']['name'];
if ($_FILES['dok']['name'] !=""){
// Checking filetype
if($_FILES['dok']['type']!="application/pdf") {die("You can only upload PDF files");}
// Checking filesize
if ($_FILES['dok']['size']>1048576) {die("The file is too big. Max size is 1MB");}
// Check if user have his own catalogue
if (file_exists("filer/".$id."/")) {
// Moving the file to users catalogue
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname);}
//If user don't have his own catalogue
else {
// Creates new catalogue then move the file in place
mkdir("filer/".$id);
move_uploaded_file($_FILES['dok']['tmp_name'],"filer/".$id."/".$fname); } }
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我在哪里可以放入解决这个问题的代码吗?非常感谢!
我正在尝试将文件重命名为: Name1_searchstats_metrics_20141230T133000036.log ,如下所示:Name2_searchstats_metrics_20141230T133000036.log
我正在尝试:rename -n 's/\Name1_/\Name2_/' *.log但是我收到了错误:
bash: /usr/bin/rename: Argument list too long
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我有一堆像这样的文件:
file123.txt.452
file456.txt.098
file789.txt.078
Run Code Online (Sandbox Code Playgroud)
如何从文件名中删除第二个点和末尾的数字?
我试过用rename但不认为我的正则表达式是正确的:
rename 's/txt.*/txt/' *
Run Code Online (Sandbox Code Playgroud) 首先renameTo()工作正常,问题是在重命名之后,File f的路径仍然是旧路径而不是新路径,换句话说File f是不可用的,必须进行更改.但是我该怎么做呢?
ArrayList<File> list = new ArrayList();
public void myfunction() {
// some code to fill list
for (File f:list){
changeName(f);
System.out.println(f.getName()); // this print the old name
}
}
public void changeName(File f){
File newFile = new File(new SimpleDateFormat("yyyyMMdd_HHmmss").format(f.lastModified())+".txt");
f.renameTo(newFile);
f = newFile; //this line here doesn't work
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多文件的文件夹。我要替换每个文件的第一个匹配字符。例如我有
aabbc.txt
aaabbxx.txt
aacbbbv.txt
Run Code Online (Sandbox Code Playgroud)
我想用“ z”替换第一个“ b”,结果将是
aazbc.txt
aaazbxx.txt
aaczbbv.txt
Run Code Online (Sandbox Code Playgroud)
所以只有第一个比赛会被替换
Dir | Rename-Item -NewName { $_.name -replace "b","a" }
Run Code Online (Sandbox Code Playgroud)
但它将替换文件名中的所有“ b”。
我一直在努力研究如何在 Lollipop 上重命名 DocumentFile。很抱歉,我曾试图到处搜索解决方案,但似乎缺少有关此新 SD 卡访问 API 的在线信息。
这是我所拥有的:
String EditText = (Alert_EditText.getText().toString()).trim();
Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
final DocumentFile documentFile = DocumentFile.fromSingleUri(MainClass.this, uri);
documentFile.renameTo(EditText);
Run Code Online (Sandbox Code Playgroud)
它提出了一个 UnsupportedOperationException:
FATAL EXCEPTION: main
Process: com.camera.test, PID: 3362
java.lang.UnsupportedOperationException
at android.support.v4.provider.SingleDocumentFile.renameTo(SingleDocumentFile.java:105)
at com.camera.test.MainClass$21.onClick(MainClass.java:986)
at android.view.View.performClick(View.java:5242)
at android.widget.TextView.performClick(TextView.java:10530)
at android.view.View$PerformClick.run(View.java:21185)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6872)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
String EditText = (Alert_EditText.getText().toString()).trim();
Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
File file = new File(uri.getPath());
final DocumentFile documentFile = DocumentFile.fromFile(file); …Run Code Online (Sandbox Code Playgroud) file-rename ×10
powershell ×3
file ×2
java ×2
linux ×2
regex ×2
windows ×2
android ×1
bash ×1
batch-file ×1
batch-rename ×1
cmd ×1
delete-file ×1
file-exists ×1
file-upload ×1
filenames ×1
php ×1
redhat ×1