Change Log for the latest
XYplorer BETA version:
Code: Select all
v18.40.0108 - 2017-09-29 16:43
* SC sync: Completely rewrote filtered sync. Now it's one argument for both
include and exclude, and it's much more powerful and faster.
Syntax: sync source, target, [copy_items], [on_collision], [delete_items], _
[switches], [logfile], [filter]
filter: List of patterns or full paths, separated by "|", to include or
exclude files or folders in/from the operation.
Pattern syntax:
a) +* vs -*: Prefix a + to include, a - to exclude. The + is
optional (you only must use it if an include pattern happens to
start with a "-" character).
b) *\ vs *: Append a backslash for folders. Else the pattern is
matched against files.
c) *\?* vs *?*: Have a backslash anywhere in the non-last position
to match the pattern against the full path of an item. Else it is
matched only against the item name without path.
Remarks:
- All matching is done against source items, not target items.
- All matching is done against items without a trailing backslash.
- Wildcards * and ? are supported. No wildcards are auto-added.
- An item is processed if it matches at least one of the include
patterns AND none of the exclude patternst. Formula:
Pass Filter = (+ OR + OR ...) AND NOT (- OR - OR ...)
- The order of patterns doesn'ot matter logic-wise, but performance-wise:
The list is worked from left to right, so the patterns that are
matched more likely should be positioned more to the left.
- The filter also affects deletions in target, sync caps, preserve all
item dates.
- If a folder does not pass the filter, the whole branch is out.
- If only folders are filtered then all files pass.
- If only files are filtered then all folders pass.
- The filter list is shown at the bottom of the Sync config dialog and
in the reports.
- The feature is not yet implemented in XYcopy (background processing)!
Examples:
// copy only *.jpg and *.png files (both are equivalent):
sync "E:\Test\Sync\Source", "E:\Test\Sync\Target", 7:="*.jpg|*.png";
sync "E:\Test\Sync\Source", "E:\Test\Sync\Target", 7:="+*.jpg|+*.png";
// copy only from paths called data
sync "E:\Test\Sync\Source", "E:\Test\Sync\Target", 7:="data\";
// don't copy files that begin with "copy ":
sync "E:\Test\Sync\Source", "E:\Test\Sync\Target", 7:="-copy *";
// don't copy from path E:\Test\Sync\Source\Temp:
sync "E:\Test\Sync\Source", "E:\Test\Sync\Target", 7:="-E:\Test\Sync\Source\Temp\";
// I use this now for one-click daily backups of the XY source code (no
// need to backup appdata)
sync "E:\XY\code\", "F:\bup\XY-code-<date yyyy>\<date yyyymmdd>\", 1, 0, 0, _
"ckn", 7:="-appdata\";
+ SC tab enhanced: New argument ID lets you refer to the tab by a stable
identifier as opposed to index which changes when the tab is moved.
Syntax: tab([operation], [data], [index], [ID])
ID: Unique and stable identifier for a tab that never changes as long as
the tab lives. The smallest possible ID is 1.
Remarks:
- If ID is passed then index is ignored.
- If you pass an invalid ID an error message is shown.
Examples:
text tab("get", "caption", , 1); //caption of a tab ID=1
+ SC tab enhanced: The operation "get" got a new data parameter
"ID":
text tab("get", "ID", [index]); //tab ID
Returns the ID of the tab referred to by index. The ID is a unique and
stable identifier for a tab that never changes as long as the tab lives.
The smallest possible ID is 1.
text tab("get", "ID"); //tab ID of current tab
+ SC popupMainMenu enhanced: Now you can pass the X and Y position.
Syntax: popupmainmenu [submenu], [x=-1], [y=-1]
x: X position; -1 to use current mouse X.
y: Y position; -1 to use current mouse Y.
Examples:
popupMainMenu , 0, 0; //top left corner of screen
To
download the latest BETA version choose a download package: (1)
Installer Package, (2)
No-Install Package.
Note that BETA versions are work in progress and might contain fresh bugs. You have been warned.
It's a good idea to backup your complete XYplorer settings (menu File | Settings Special | Backup Application Data Folder...)
before running a new BETA version. This will also help in fixing any fresh bugs.